/ / Exclure le nombre d'éléments annotés dans Django Query - python, django

Exclure le nombre d'éléments annotés dans Django Query - python, django

Je demande à la base de données d’obtenir une liste d’objets et utilise annotate () pour compter le nombre d’éléments associés.

Je ne souhaite que renvoyer des objets avec un item compter plus de 5.

lists = List.objects.exclude(picture_url="").exclude(picture_url__icontains="google").select_related("city","city__country", "user", "user__profile").annotate(items_added=Count("item"))[:10]

Réponses:

4 pour la réponse № 1
lists = List.objects.exclude(picture_url="") 
.exclude(picture_url__icontains="google") 
.select_related("city","city__country", "user", "user__profile") 
.annotate(items_added=Count("item")) 
.filter(items_added__gt=5)[:10]

Contrairement à aggreg (), annotate () n'est pas un terminalclause. La sortie de la clause annotate () est un QuerySet; ce QuerySet peut être modifié en utilisant une autre opération QuerySet, y compris filter (), order_by ou même des appels supplémentaires à annotate ().