2010-03-25 82 views
1

類項目(models.Model): 類= models.ManyToManyField(類別)如何統計django ORM中多對多關係中的所有不同記錄?

class Category(models.Model): 
name = models.CharField() 
現在

,我做一些查詢集:

query = Project.objects.filter(id__in=[1,2,3,4]) 

,我喜歡把所有不同的類別列表在這個查詢集計數與項目的計數與這些類別 - 正是我想要得到的結果:

category1 - 10 projects 
category2 - 5 projects 

相反於這個查詢:

query2 = query.annotate(Count('categories')) 

什麼回報我:

project1 - 2categories 
project2 - 7categories 

我怎樣才能使它在Django的ORM?

回答

0
Category.objects.filter(project__in=query).annotate(Count('project')) 
+1

是的,但我想從中得到具體的查詢集只類別(Project.objects.filter(id__in = [1,2,3,4]) ),而不是從數據庫中 – user301623 2010-03-25 12:12:59

+0

所有類別更新了我回答 – 2010-03-25 13:21:59