Django ORM 中的 AND OR 组合
Posted
技术标签:
【中文标题】Django ORM 中的 AND OR 组合【英文标题】:AND OR combinations in Django ORM 【发布时间】:2013-06-30 18:44:21 【问题描述】:我想将这样的查询翻译成 Django ORM:
SELECT * FROM table WHERE status=1 OR (status=3 AND timestamp < ...)
...
是一个有效的时间戳。
我尝试像这样构建Q()
对象:
Q(status=1) | Q (status=3, timestamp__lt=self.timeBeforeStatusIsUpdated)
和
completedQ = Q(status=1)
pendingQ = Q(status=3) & Q(timestamp__lt=self.timeBeforeStatusIsUpdated)
final = completedQ | pendingQ
两者都只返回带有status=1
的实例。
这个功能在 django 中没有很好的记录(我使用的是最新版本),所以我正在寻求帮助。
【问题讨论】:
【参考方案1】:有趣的故事。两个版本都正确且有效。错误在其他地方。
【讨论】:
以上是关于Django ORM 中的 AND OR 组合的主要内容,如果未能解决你的问题,请参考以下文章