2010-03-25 4 views
1

projet de classe (models.Model): catégories = models.ManyToManyField (Catégorie)comment compter tous les enregistrements distincts dans plusieurs-à-plusieurs relations dans django ORM?

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

maintenant, je fais quelques queryset:

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

et j'aime obtenir la liste de toutes les catégories distinctes dans ce queryset avec le nombre de projets faisant référence à ces catégories - exactement je voudrais obtenir ces résultats:

category1 - 10 projects 
category2 - 5 projects 

qui est opposée à cette requête:

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

ce qui me reviennent:

project1 - 2categories 
project2 - 7categories 

comment puis-je faire dans django ORM?

Répondre

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

oui, mais j'aime obtenir seulement les catégories de cette queryset spécifique (Project.objects.filter (id__in = [1,2,3,4]) ), pas de toutes les catégories dans la base de données mis à jour mon – user301623

+0

répondre –

Questions connexes