2011-02-26 33 views
2

我在我的django項目中有一個名爲「change」的模型,它有一個名爲「change_type」的字段。 change_type字段中包含多個值,包括「移動」,「新建」,「編輯」以及其他新類型在任何給定時間段內隨機添加的其他值。我目前使用正常的Django查詢來選擇變更模型中的條目組。在django中按字段類型計算數據庫條目

是否有一種快速方法來確定change_type字段中的唯一條目?是否有快速的方法來返回每個入口類型的計數?

回答

1

將其組合在一起:

occurrences = {} 
change_types = Change.objects.values_list('change_type', flat=True).distinct() 

for type in change_types: 
    occurrences[type] = Change.objects.filter(change_type=type).count() 
+0

輝煌答案。 – Mark 2016-02-10 10:44:50

3

找到解決方案後,它非常簡單。

Change.objects.all().values('change_type').distinct() 
+0

很酷,我喜歡那樣。 – 2011-02-27 02:29:27

0

此,現在可以更有效地使用aggregation實現:

Change.objects.values('change_type').annotate(Count('change_‌​type'))

輸出包含change_type__count字段對於每個相應change_type