Подтвердить что ты не робот

Счетчик полей Django Query

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

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

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

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

4b9b3361

Ответ 1

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

from django.db.models import Count
User.objects.annotate(page_count=Count('page')).filter(page_count__gte=2).count()

Ответ 2

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

from django.db.models import Count

User.objects.annotate( our_param=Count("all_comments")).filter(our_param__gt=12)