Исключить количество аннотированных элементов в Django Query - PullRequest
2 голосов
/ 30 января 2012

Я запрашиваю БД, чтобы получить список объектов, и использую annotate (), чтобы подсчитать, сколько связанных с ним Предметов.

Я бы хотел вернуть только объекты со связанным 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]

1 Ответ

4 голосов
/ 30 января 2012
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]

В отличие от aggregate (), annotate () не является терминальным предложением.Результатом предложения annotate () является QuerySet;этот QuerySet может быть изменен с использованием любой другой операции QuerySet, включая filter (), order_by или даже дополнительные вызовы annotate ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...