Django视图:计算模型中的特定值



在django视图中,我有:

 signed_by = Demographic.objects.all().values_list('data_entered_by')

我得到了[(u'Patient',),(u'Patient',), (u'Other',)]

我想分别计算所有具有Patient值的和所有具有Other值的。

如果我使用

signed_by.count() 

我得到了所有人的计数。如何计算指定值?

您可以注释查询集:

signed_by = Demographic.objects.values('data_entered_by').annotate(cnt=Count('id'))

因此,您可以获得每个data_entered_by值的计数,如下所示,因为它返回dict对象的列表:

for q in signed_by:
    print(q['data_entered_by'], q['cnt])

来自文件:

当指定了annotate()子句时,QuerySet中的每个对象都将用指定的值进行注释。

最新更新