为什么django模型日期过滤器会在前一天生成查询

时间:2015-01-01 22:26:13

标签: python django date

import datetime
d = datetimte.datetime.today()
print d
2015-01-02 03:59:48.392104
print CourseDay.objects.filter(date__exact=d).query

SELECT `website_courseday`.`id`, `website_courseday`.`date`,
`website_courseday`.`presentation_id` FROM `website_courseday` 
 WHERE `website_courseday`.`date` = 2015-01-01 22:29:48

为什么它会在值前一天生成日期?

我使用的是django 1.4.10,而mysql是db server。

1 个答案:

答案 0 :(得分:0)

您的主要问题似乎是将datetime个对象与date个对象混淆。

(我假设date的{​​{1}}字段是CourseDay,因为DateField查询对于a __exact没有多大意义DateTimeField。)

如果您关心的只是当地时间(如果您有USE_TZ=False似乎就是这种情况),解决方案很简单:

import datetime

d = datetime.date.today()  # note the difference
CourseDay.objects.filter(date__exact=d)  # should work as you expect