第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用變量過(guò)濾和計(jì)數(shù) QuerySet 項(xiàng)目

使用變量過(guò)濾和計(jì)數(shù) QuerySet 項(xiàng)目

瀟湘沐 2023-08-22 17:38:45
我是 Django 新手,正在開發(fā)一個(gè)非?;镜纳缃幻襟w網(wǎng)站作為練習(xí)項(xiàng)目?,F(xiàn)在,我正在嘗試弄清楚如何根據(jù)變量過(guò)濾查詢集并計(jì)算查詢集中有多少項(xiàng)與過(guò)濾器匹配。為了演示我想要做什么,假設(shè)我正在循環(huán)瀏覽所有可見的帖子(例如 Facebook 帖子或類似的帖子),并且我想要顯示每個(gè)帖子的評(píng)論數(shù)量。這就是我的做法:{% post in all_posts %}    <h1> There are currently {{ HOW DO I FILTER AND COUNT? }} comments on this post</h1>{% endfor %}這是我的文件的相關(guān)部分的樣子views.py:def index(request):    all_posts = Posts.objects.order_by('-date_published')    all_comments = Comments.objects.order_by('-date_published')    context = {'all_posts': all_posts,               'all_comments': all_comments              }    return render(request, 'social/index.html', context)評(píng)論通過(guò) postID 變量鏈接到帖子。所以,我知道這不起作用,但理想情況下我想HOW DO I FILTER AND COUNT?用以下內(nèi)容替換我的模板部分:{{ all_comments.filter(postID=post).count }}有沒(méi)有一種簡(jiǎn)單的方法可以在我的views.py或模板本身中執(zhí)行此操作?我遇到的主要問(wèn)題是我不知道如何將post模板中的變量傳遞給某個(gè)返回我正在查找的計(jì)數(shù)的函數(shù)。更新:以下是我的帖子和評(píng)論模型:class Posts(models.Model):     title = models.CharField(max_length=200)     author = models.CharField(max_length=200)     content = models.TextField()     date_published = models.DateTimeField('date posted') class Comments(models.Model):     postID = models.ForeignKey(Posts, on_delete=models.CASCADE)     commenter = models.CharField(max_length=200)     email = models.EmailField(max_length=200)     content = models.TextField()     date_published = models.DateTimeField('date posted')
查看完整描述

1 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊

您可以Posts使用以下數(shù)量注釋模型對(duì)象Comments:


def index(request):

    all_posts = Posts.objects.annotate(

        ncomments=Count('comments')

    ).order_by('-date_published')

    all_comments = Comments.objects.order_by('-date_published')

    context = {

        'all_posts': all_posts,

        'all_comments': all_comments

    }

    return render(request, 'social/index.html', context)

在模板中,您可以使用以下命令進(jìn)行渲染:


{% post in all_posts %}

    <h1> There are currently {{ post.ncomments }} comments on this post</h1>

{% endfor %}

注意:通常 Django 模型有一個(gè)單一的名稱,所以Post而不是Posts.


查看完整回答
反對(duì) 回復(fù) 2023-08-22
  • 1 回答
  • 0 關(guān)注
  • 220 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)