web-dev-qa-db-ja.com

Django Query Related Field Count

ユーザーがページを作成するアプリがあります。 2ページ以上作成したユーザーの数を返す簡単なDBクエリを実行したいと思います。

これは基本的に私がやりたいことですが、もちろん正しい方法ではありません:

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

私は何が欠けていますか?

56
Brenden

aggregates を使用する必要があります。

from Django.db.models import Count
User.objects.annotate(page_count=Count('page')).filter(page_count__gte=2).count()
100
Ismail Badawi

私の場合、 other answer のようにlast .count()を使用しなかったので、Niceでも機能します。

from Django.db.models import Count

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