2011-07-07 67 views
0

我有以下情況: 一個人可以屬於多個團體和組織可以有多個成員(人)如何根據多對多關係的數量篩選Django查詢集?

class Person(models.Model): 

    organizations = ManytoManyField(Organization) 

我想成員人數爲組織歸類:

組織0成員

組織用1個構件

組織與5個成員或更多等。

對於這些類別中的每一個,我只想對數據庫使用一個查詢。這意味着我不想爲了性能原因而使用for-loops。

最後問題是:我怎樣才能過濾Django查詢集基於它擁有的manytomany關係的數量?

謝謝

回答

1

在QuerySets上使用Django聚合,特別是Count。

from django.db.models import Count 
Person.objects.aggregate(Count('organizations')) 

更多關於這個話題:https://docs.djangoproject.com/en/dev/topics/db/aggregation/

(但我也認爲是有.Count之間()或東西縮寫類的地方)

+0

感謝您的幫助,我只注意到太。 – William

相關問題