亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從views.py中的數據庫中獲取內容?

如何從views.py中的數據庫中獲取內容?

米脂 2023-07-05 16:37:29
我正在嘗試打印content數據庫中的字段,這是我的models.py文件:class Post(models.Model):    title = models.CharField(max_length=100)    content = models.TextField()    read_time = models.TimeField(null=True, blank=True)    view_count = models.IntegerField(default=0)這是我的views.py文件:-class PostDetailView(DetailView):    model = Post    def get_object(self):        obj = super().get_object()        obj.view_count += 1        obj.save()        return obj        def get_context_data(self, **kwargs):        context = super().get_context_data(**kwargs)        all_texts = {            'texts': context.content        }        print(all_texts[texts])        return context我正在嘗試從數據庫中訪問字段中的所有數據content,但是上述方法不起作用,有什么方法可以訪問字段中的所有數據content,因為我必須對這些字段執行一些操作,例如計算任何內容的長度read_time,基于其長度。
查看完整描述

3 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

您不必為此重寫方法 [Django-doc],因為該對象已經傳遞到上下文.get_queryset(…)。您可以簡單地在模板中渲染它:

{{ object.content }}

如果您確實在上下文中需要它,您可以將其實現為:


class PostDetailView(DetailView):

? ? model = Post

? ??

? ? # …

? ??

? ? def get_context_data(self, **kwargs):

? ? ? ? context = super().get_context_data(**kwargs)

? ? ? ? context.update(

? ? ? ? ? ? texts=self.object.content

? ? ? ? )

? ? ? ? return context

如果您需要所有帖子對象,您可以將它們添加到上下文中:


class PostDetailView(DetailView):

? ? model = Post

? ??

? ? # …

? ??

? ? def get_context_data(self, **kwargs):

? ? ? ? context = super().get_context_data(**kwargs)

? ? ? ? context.update(

? ? ? ? ? ? texts=self.object.content,

? ? ? ? ? ? posts=Post.objects.all()

? ? ? ? )

? ? ? ? return context

并將它們呈現為:


{% for post in posts %}

? ? {{ post.content }}

{% endfor %}

在增加視圖計數器以避免競爭條件時,最好使用表達式F[Django-doc]:

class PostDetailView(DetailView): model = Post def get_object(self): obj = super().get_object() 視圖 = obj.view_count obj.view_count =?F('view_count') + 1?obj.save() obj.view_count =視圖+1?返回 obj


查看完整回答
反對 回復 2023-07-05
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

只需查詢所有對象并循環查詢集即可根據您的需要操作它們,如下所示:


def your_view(self, **kwargs):


    # Get all table entries of Model Post

    queryset = Post.objects.all()


    # Loop each object in the queryset

    for object in queryset:


    # Do some logic

        print(object.content)


    [...]

    return (..., ...)


查看完整回答
反對 回復 2023-07-05
?
手掌心

TA貢獻1942條經驗 獲得超3個贊

首批進口車型

from . models import Post

然后在你的函數中

data=Post.objects.values('content').all()

現在 data 具有內容字段 data=[{'content':first_value},{'content':second_value},..like this...] 中的所有值


查看完整回答
反對 回復 2023-07-05
  • 3 回答
  • 0 關注
  • 191 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號