/ / Виключити кількість записів із коментарями у запиті Django - python, django

Виключити кількість елементів анотації у запиті Django - python, django

Я запитую БД, щоб отримати список об'єктів, і використовую примітку () для підрахунку кількості пов'язаних з ними елементів.

Мені б хотілося повертати лише об'єкти із пов'язаними item рахуйте вище 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]

Відповіді:

4 для відповіді № 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]

На відміну від agregate (), примітка () не є терміналомстаття Вихід пункт annotate () - це QuerySet; цей QuerySet можна змінити використовуючи будь-яку іншу операцію QuerySet, включаючи filter (), order_by або навіть додаткові дзвінки для примітки ().