Django查询相关字段计数

Bre*_*den 58 django django-queryset django-select-related

我有一个用户创建页面的应用程序.我想运行一个简单的数据库查询,返回有多少用户创建了超过2页.

这基本上就是我想要做的,但当然这不是正确的方法:

User.objects.select_related('page__gte=2').count()
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

Ism*_*awi 105

你应该使用聚合.

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


Yar*_*rik 5

就我而言,我没有.count()其他答案那样使用last ,而且效果也很好。

from django.db.models import Count

User.objects.annotate( our_param=Count("all_comments")).filter(our_param__gt=12)
Run Code Online (Sandbox Code Playgroud)