python - 結合 - django 検索




どのようにして2つのDjangoクエリーセットの結合を見つけることができますか? (2)

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

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


バージョン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

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


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

records = query1 | query2

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

records = (query1 | query2).distinct()




django-models