В django я хочу получать объекты из базы данных в зависимости от атрибутов некоторых других объектов. Если один из других объектов не существует, он не должен влиять на результат запроса. Код такой:
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)
Для Querysets существует метод none()
, который всегда возвращает EmptyQueryset. Есть ли что-то похожее для объектов Q?
Или есть лучший способ решить мою проблему?