J'ai une application où les utilisateurs créent des pages. Je souhaite exécuter une requête DB simple qui renvoie le nombre d'utilisateurs ayant créé plus de 2 pages.
C'est essentiellement ce que je veux faire, mais bien sûr ce n'est pas la bonne méthode:
User.objects.select_related('page__gte=2').count()
Qu'est-ce que je rate?
Vous devez utiliser agrégats .
from Django.db.models import Count
User.objects.annotate(page_count=Count('page')).filter(page_count__gte=2).count()
Dans mon cas, je n'ai pas utilisé la dernière .count()
comme la autre réponse et cela fonctionne aussi bien.
from Django.db.models import Count
User.objects.annotate( our_param=Count("all_comments")).filter(our_param__gt=12)