我需要检查给定时间间隔是否存在任何对象?我怎么能这样做?如何将这个Mysql翻译成Django:
SELECT *
FROM `event_event`
WHERE (startDate BETWEEN "2010-10-1" AND "2010-10-5")
OR (endDate BETWEEN "2010-10-1" AND "2010-10-5")
我目前正在使用
Event.objects.filter(Q(startDate__range(datetime(2010,10,1),datetime(2010,10,5)))|Q(endDate__range(datetime(2010,10,1),datetime(2010,10,5))))
但是当我使用Django过滤器时,我没有得到任何对象。请告诉我我错在哪里。
答案 0 :(得分:1)
做
print Event.objects.filter(Q(startDate__range(datetime(2010,10,1),datetime(2010,10,5)))|Q(endDate__range(datetime(2010,10,1),datetime(2010,10,5)))).query
看看它产生了什么SQL,它会帮助你发现差异。
答案 1 :(得分:0)
尝试这样做:
Event.objects.filter(Q(startDate >= datetime(2010, 10, 1), startDate <= datetime(2010, 10, 5)) | Q(endDate >= datetime(2011, 10, 1), endDate <= datetime(2010, 10, 5)))