Количество полей, связанных с запросом Django - PullRequest
54 голосов
/ 29 июня 2011

У меня есть приложение, где пользователи создают страницы.Я хочу выполнить простой запрос к БД, который возвращает количество пользователей, которые создали более 2 страниц.

По сути, это то, что я хочу сделать, но, конечно, это не правильный метод:

User.objects.select_related('page__gte=2').count()

Чего мне не хватает?

Ответы [ 2 ]

97 голосов
/ 29 июня 2011

Вы должны использовать агрегаты .

from django.db.models import Count
User.objects.annotate(page_count=Count('page')).filter(page_count__gte=2).count()
1 голос
/ 24 июня 2017

В моем случае я не использовал последний .count(), как другой ответ , и это также хорошо работает.

...