Я запитую БД, щоб отримати список об'єктів, і використовую примітку () для підрахунку кількості пов'язаних з ними елементів.
Мені б хотілося повертати лише об'єкти із пов'язаними 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 для відповіді № 1lists = 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 або навіть додаткові дзвінки для примітки ().