私は2つのカスタムマネージャメソッドを持つDjangoモデルを持っています。それぞれは、オブジェクトの異なるプロパティに基づいて、モデルのオブジェクトの異なるサブセットを返します。2つの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
秒を参照してください。)
クエリセット、またはオブジェクトのリストだけを取得する方法があり、それは各によって返されたクエリセットのintersectiondですマネージャメソッド?
に利用可能です各マネージャの2つのフィルタ機能を組み合わせることを止めているのは何ですか? –
'Model.objects.managerMethodOne()。managerMethodTwo()'のような意味ですか?それはうまくいかないようでした。多分私はマネージャメソッドを正しく書いていないでしょうか? –
フィルタ自体が機能します。 'Model.objects.filter(this = that).filter(that = somethingelse)'である。なぜあなたはそれをやっていないのですか? –