Django ORM中的AND OR组合

时间:2013-06-30 18:44:21

标签: django orm

我想将这样的查询翻译成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 个答案:

答案 0 :(得分:0)

有趣的故事。两个版本都正确且有效。错误在其他地方撒谎。