gpt4 book ai didi

python - 有没有办法构造一个代表 EmptyQueryset 的 Q 对象,即总是返回一个空结果?

转载 作者:行者123 更新时间:2023-11-28 16:52:44 25 4
gpt4 key购买 nike

在 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)

对于查询集,有 none() 方法,它总是返回 EmptyQueryset。 Q对象有类似的东西吗?

或者有更好的方法来解决我的问题吗?

最佳答案

qList = []
try:
objectA = ...
qList.append(Q(foo=objectA.bar))
except ...:
...
...

result = MyOtherMdel.objects.filter(reduce(operator.or_, qList),
**other_filter_conditions)

关于python - 有没有办法构造一个代表 EmptyQueryset 的 Q 对象,即总是返回一个空结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5341998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com