2016-05-17 63 views
1

特定值在Django視圖我有:Django的觀點:從計數模式

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

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

我想要計算所有具有Patient值的值和所有具有Other值的值。

如果我用

signed_by.count() 

我得到的計數所有。我如何計算指定的值?

回答

2

可以annotate的查詢集:

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中的每個對象都將使用指定的值進行註釋。

+0

annotate()是什麼意思? – zinon

+0

我想爲每個人獲得一個數字。 – zinon

+0

我添加了註釋。它用於使用特定的計算字段註釋查詢集中的每個對象。我不明白你的評論中的這一部分,但是... _我想爲每個人獲得一個數字? – AKS