我有以下情况:一个人可以属于多个组织,一个组织可以有多个成员(Persons)
class Person(models.Model):
organizations = ManytoManyField(Organization)
我想按成员数量对组织进行分类:
拥有0个成员的组织
有1个成员的组织
5人以上的组织等等。
对于这些类别中的每一个,我只想使用一个对数据库的查询。这意味着出于性能考虑,我根本不想使用for循环。
最后的问题是:我如何过滤一个django queryset基于它有多多多关系的数量?
谢谢
在queryset上使用Django聚合,特别是Count。
from django.db.models import Count
Person.objects.aggregate(Count('organizations'))
关于此主题的更多信息:https://docs.djangoproject.com/en/dev/topics/db/aggregation/
(但我也认为有一个。count()或类似的缩写)