【发布时间】:2012-07-01 01:07:11
【问题描述】:
我想 Django 1.4 中添加了时区管理,所以这个问题是相当新的。
我使用了一个简单的模型
class Sample(models.Model):
...
date_generated = models.DateTimeField(auto_now_add = True)
当我尝试检索新创建的记录时,它失败了。
min_datetime = datetime.now() - timedelta(seconds = 300)
sample = Sample.objects.get(date_generated__gte = min_datetime)
服务器发出警告。
DateTimeField received a naive DateTime (2012-06-29 15:02:15.074000) while time zone support is active.
我想出了两个解决这个问题的办法。
-
在settings.py中禁用时区管理
USE_TZ = False
但这并不总是可取的。 2.改变
date_generated = models.DateTimeField(auto_now_add = True)
到
date_generated = models.DateTimeField(default=datetime.now())
是保持时区管理正常工作的解决方案
【问题讨论】: