我有兩個自定義管理器方法的Django模型。每個都根據對象的不同屬性返回模型對象的不同子集。如何找到兩個Django查詢集的交集?
class FeatureManager(models.Manager):
def without_test_cases(self):
return self.get_query_set().annotate(num_test_cases=models.Count('testcase_set')).filter(num_test_cases=0)
def standardised(self):
return self.get_query_set().annotate(standardised=Count('documentation_set__standard')).filter(standardised__gt=0)
(無論testcase_set
和documentation_set
指ManyToManyField
S於其他機型。)
有沒有什麼辦法讓一個查詢集,或只是一個對象列表,這就是查詢集的每一個返回的intersectiond經理方法?
什麼阻止你結合每個經理的兩個過濾功能? – 2010-12-10 16:48:52
你的意思是像'Model.objects.managerMethodOne()。managerMethodTwo()'?這似乎並不奏效。也許我沒有正確寫我的經理方法? – 2010-12-10 16:54:01
過濾器功能本身。 'Model.objects.filter(這=那個).filter(即= somethingelse)'。你爲什麼不這樣做? – 2010-12-10 16:56:11