このようなクエリを 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 では十分に文書化されていないため (私は最新バージョンを使用しています)、助けを求めています。