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)
输出结果是正常的,但我收到了一个运行时警告,这让我有点烦。以下是那个警告(还有其他输出):
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.
运行时警告) xxx/venv/lib/python2.7/site-packages/django/db/models/fields/init.py:808: 运行时警告: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
我在 settings.py 中将 USE_TZ 设置为 True,并且 created_time 字段是这样的:
created_time = models.DateTimeField(_('Creation time'), default=datetime.now)
有人能帮忙吗? :)
1 个回答
1
在编程中,有时候我们需要处理一些数据,比如从一个地方获取信息,然后在另一个地方使用这些信息。这个过程就像是把水从一个水桶倒到另一个水桶里。
有些时候,我们会遇到一些问题,比如数据的格式不对,或者我们想要的数据没有被正确地获取。这就像是你想要的水桶里没有水,或者水的颜色和你想要的不一样。
为了避免这些问题,我们可以使用一些工具和方法来确保我们获取的数据是正确的。这就像是使用一个过滤器来确保水是干净的,或者使用一个量杯来确保你倒的水量是准确的。
总之,处理数据就像是做实验一样,我们需要小心翼翼,确保每一步都做对,这样才能得到我们想要的结果。
jobs = Jobs.objects.filter(
created_time__range[monday_of_last_week, monday_of_this_week]).order_by('-created_time')