djangoでは、他のオブジェクトの属性に応じて、データベースからオブジェクトを取得したいと思います。他のオブジェクトの1つが存在しない場合、クエリの結果に影響を与えることはありません。コードは次のようになります。
from django.db.models import Q
try:
objectA = MyModel.objects.get(id = idA)
qA = Q(foo = objectA.bar)
except MyModel.DoesNot.Exist:
qA = Q(???)
try:
objectB = MyModel.objects.get(id = idB)
qB = Q(abc = objectB.xyz)
except MyModel.DoesNot.Exist:
qB = Q(???)
result = MyOtherModel.objects.filter(qA | qB, **other_filter_conditions)
クエリセットには、none()
常にEmptyQuerysetを返すメソッドがあります。Qオブジェクトに似たものはありますか?
それとも私の問題を解決するためのより良い方法はありますか?