QuerysetのANDとOR

AND(&)

SQLのAND演算子のように、二つのQuerysetを結合する。

x=1になるQuerysetと、y=2になるQuerysetのANDの方法は以下の通り。

Model.objects.filter(x=1) & Model.objects.filter(y=2)
Model.objects.filter(x=1, y=2)

from django.db.models import Q
Model.objects.filter(Q(x=1) & Q(y=2))

以下のSQLと等しい結果を返す。

SELECT ... WHERE x=1 AND y=2

OR(|

SQLのOR演算子のように、二つのQuerysetを結合する。

x=1になるQuerysetと、y=2になるQuerysetのORの方法は以下の通り。

Model.objects.filter(x=1) | Model.objects.filter(y=2)

from django.db.models import Q
Model.objects.filter(Q(x=1) | Q(y=2))

以下のSQLと等しい結果を返す。

SELECT ... WHERE x=1 OR y=2

最終更新

役に立ちましたか?