如何根据多对多关系的数量来过滤一个django查询集



我有以下情况:一个人可以属于多个组织,一个组织可以有多个成员(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()或类似的缩写)

相关内容

  • 没有找到相关文章

最新更新