我可以修改以下查詢,使其使用Django ORM的簡明方式嗎?使用Django ORM的簡短記錄查詢
queryset.filter((Q(from_date__lte=from_date) & \
Q(to_date__gt=from_date)) | \
(Q(from_date__lte=to_date) &
Q(to_date__gt=to_date)))
下面是一些例子:
"from_date": "2014-05-11 08:00:00",
"to_date": "2014-05-11 10:00:00",
"from_date": "2014-05-12 12:00:00",
"to_date": "2014-05-12 15:00:00",
這些都在數據庫
日期,如果你提交
fromDate=2014-05-11 08:00:00
toDate=2014-05-11 13:00:00
應該給我只是第一次約會
"from_date": "2014-05-11 08:00:00",
"to_date": "2014-05-11 10:00:00",
這裏再次,應該給我只是第一個結果
fromDate=2014-05-11 09:00:00
toDate=2014-05-11 13:00:00
如果我提交下列日期
fromDate=2014-05-11 07:00:00
toDate=2014-05-11 09:00:00
同樣,只有第一個結果應採取
如果你這樣做你可以得到兩個結果
fromDate=2014-05-11 09:00:00
toDate=2014-05-12 13:00:00
我希望你明白這個主意是什麼。
該查詢應該保持相同的邏輯!
您可以使用[範圍](https://docs.djangoproject.com/en/dev/ref/models/querysets/#range)在兩個日期之間搜索日期字段,但它似乎不是您的情況。 – danihp
你能告訴我它看起來如何嗎?提前致謝! – Krasimir
你能強制你的'from_date'值小於或等於(或者嚴格小於,如果合適的話)你的'to_date'嗎?如果是這樣,這可以簡化。另外,模型中的'from_date'和'to_date'值可以爲空嗎? –