Django:查询的天真日期时间
问题描述:
我试图检索两个日期(星期一 - >星期一)之间的所有数据。这里是我的代码:Django:查询的天真日期时间
some_day_last_week = datetime.datetime.now() - timedelta(days=7)
monday_of_last_week = some_day_last_week - timedelta(days=(some_day_last_week.isocalendar()[2] - 1))
monday_of_this_week = monday_of_last_week + timedelta(days=7)
print "Someday last week %s" % some_day_last_week
print "Monday of last week %s" % monday_of_last_week
print "Monday of this week %s" % monday_of_this_week
jobs = Jobs.objects.filter(created_time__gte=monday_of_last_week, created_time__lt=monday_of_this_week).order_by('-created_time')
for job in jobs:
print "Jobb: %s (%s)" % (job, job.created_time)
输出是好的,但我得到一个RuntimeWarning这是我的bug。下面是(以及其他输出):
Someday last week 2013-03-14 15:11:32.819508
Monday of last week 2013-03-11 15:11:32.819508
Monday of this week 2013-03-18 15:11:32.819508
xxx/venv/lib/python2.7/site-packages/django/db/models/fields/__init__.py:808: RuntimeWarning: DateTimeField received a naive datetime (2013-03-11 15:11:32.819508) while time zone support is active.
RuntimeWarning) XXX/VENV/lib中/ python2.7 /站点包/ Django的/ DB /模型/场/ 初始化的.py:808 :RuntimeWarning:DateTimeField在时区支持处于活动状态时收到了天真的日期时间(2013-03-18 15:11:32.819508)。 (2013-03-13 09:14:02 + 00:00) [21/Mar/2013 15:11:32]“GET/jobs/feed/7days/HTTP/1.1”200 712
我USE_TZ设置为True settings.py中,和现场CREATED_TIME是这样的:
created_time = models.DateTimeField(_('Creation time'), default=datetime.now)
有人吗? :)
答
jobs = Jobs.objects.filter(
created_time__range[monday_of_last_week, monday_of_this_week]).order_by('-created_time')
全局名称'created_time__range'未定义。不应该__range开箱即用? :) – Mats 2013-03-21 14:43:32
啊,你错过了=。但仍然,我得到相同的运行时警告..:/ – Mats 2013-03-21 14:47:27
为什么会发生这种情况,它是一个内置的查询功能。 hmmmmmm .... – catherine 2013-03-21 14:48:22