python 結合 2 つの Django クエリセットの共用体を見つけるにはどうすればよいですか?




django 検索 (2)

バージョン1.11以降、djangoクエリーセットには組込みメソッドが組み込まれています。

q = q1.union(q2) #q will contain all unique records of q1 + q2
q = q1.union(q2, all=True) #q will contain all records of q1 + q2 including duplicates
q = q1.union(q2,q3) # more than 2 queryset union

より多くの例については、私のブログ記事を参照してください。

私は2つのカスタムマネージャメソッドを持つDjangoモデルを持っています。 それぞれは、オブジェクトの異なるプロパティに基づいて、モデルのオブジェクトの異なるサブセットを返します。

クエリーセットを取得する方法はありますか、または各マネージャメソッドによって返されるクエリーセットの和集合であるオブジェクトのリストだけですか?


これは動作し、少しきれいに見える:

records = query1 | query2

重複したくない場合は、 .distinct()を追加する必要があります:

records = (query1 | query2).distinct()






django-models