Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有办法构造一个表示空QuerySet的Q对象,即总是返回空结果的Q对象?_Python_Django_Django Q - Fatal编程技术网

Python 有没有办法构造一个表示空QuerySet的Q对象,即总是返回空结果的Q对象?

Python 有没有办法构造一个表示空QuerySet的Q对象,即总是返回空结果的Q对象?,python,django,django-q,Python,Django,Django Q,在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.obje

在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()
方法,它总是返回空的查询集。Q对象有类似的东西吗

还是有更好的方法来解决我的问题

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

result = MyOtherMdel.objects.filter(reduce(operator.or_, qList),
  **other_filter_conditions)
对于QuerySet,有一个none()方法,它总是返回EmptyQueryset。Q对象有类似的东西吗


Q(pk=-1)

谢谢。工作正常。
MyModel
myThermodel
之间的关系是什么。这不是一种
mymodel\uuuuufoo=idA
mymodel\uuuuuabc=idB
类型的查询吗?@S.Lott:不,Q对象比示例中复杂得多。这并不能真正回答问题。
MyModel
myThermodel
之间的关系是什么。虽然过滤器可能很复杂,但使用这些技术也可以稍微简化。@S.Lott:承认,你是对的。逻辑是这样的:一个约会就是取消。现在,我希望所有可以/应该重新安排并满足以下条件的未来约会:
在取消之前有一个约会
约会类别兼容
未来约会符合间隔
)或(
有下一个约会
类别兼容
要移动的约会正好符合间隙*
。我不知道如何在通常的查询中表达这一点,Ignacios解决方案工作得很好。有什么问题吗?请使用更完整的数据模型更新问题。