如何使用 Django QuerySet 生成总和并显示在模板中?
How to generate a total sum with a Django QuerySet and display in a template?
我正在使用 annotate
和我的 Django 查询集来计算记录数。我将它与 filter
一起使用,我明白顺序会有所不同。
我的查询是:numcontestants = Contestant.objects.filter(assigned_team__id=urlid).annotate(num_contestants=Count('id'))
当我将 numcontestants 传递到我的模板并使用 {{ numcontestants }}
显示它时,我看到一个查询集,其中包含我要查看的每条记录。当我尝试:
{{ numcontestants.num_contestants }}
我一无所获
我不想迭代 numcontestants 来获得计数,我的理解是 num_contestants
应该是一个整数。即便如此,迭代并没有给出我想要的结果,例如使用:
{% for x in numcontestants %} {{x.num_contestants}} {% endfor %}
输出 1 1 1
当我试图获得输出 3
.
的东西时
生成和访问总计数的正确方法是什么?
为每条记录注释return一个数字,第一条记录可以得到num_contestants:
{{ numcontestants.0.num_contestants }}
如果你想获得多个queryset结果可以在你的quesyset
中使用.count()
numcontestants = Contestant.objects.filter(assigned_team__id=urlid).count()
我正在使用 annotate
和我的 Django 查询集来计算记录数。我将它与 filter
一起使用,我明白顺序会有所不同。
我的查询是:numcontestants = Contestant.objects.filter(assigned_team__id=urlid).annotate(num_contestants=Count('id'))
当我将 numcontestants 传递到我的模板并使用 {{ numcontestants }}
显示它时,我看到一个查询集,其中包含我要查看的每条记录。当我尝试:
{{ numcontestants.num_contestants }}
我一无所获
我不想迭代 numcontestants 来获得计数,我的理解是 num_contestants
应该是一个整数。即便如此,迭代并没有给出我想要的结果,例如使用:
{% for x in numcontestants %} {{x.num_contestants}} {% endfor %}
输出 1 1 1
当我试图获得输出 3
.
生成和访问总计数的正确方法是什么?
为每条记录注释return一个数字,第一条记录可以得到num_contestants:
{{ numcontestants.0.num_contestants }}
如果你想获得多个queryset结果可以在你的quesyset
中使用.count()
numcontestants = Contestant.objects.filter(assigned_team__id=urlid).count()