使用 django 1.4 我有一个带有日期时间字段的模型。我导入了django.utils.timezone作为默认值。
from django.utils import timezone
date = models.DateTimeField(default=timezone.now)
但是我仍然收到有关日期时间字段收到幼稚日期的警告。我已将USE_TZ设置为 true,因此它应该返回感知日期时间
django 放入一个默认的日期值,该值无法识别 tz,因为默认情况下该字段不可为空。 将 null 设置为 true 意味着它只会将日期设置为 NULL,因此不会引发警告:
date = models.DateTimeField(default=timezone.now, null=True)
就我而言,我在运行测试时不断收到问题。这是因为过去的迁移错误地使用了日期时间而不是时区。我恢复到导致警告之前的迁移,删除它,再次运行迁移。这为我解决了问题。
now()
返回表示当前 分别
USE_TZ
True
或False
的时间点。
https://docs.djangoproject.com/en/dev/ref/utils/#django.utils.timezone.now
这是回避这个问题,但你有没有在你的领域尝试过auto_now_add=True
?无需将default
用于您想要的。
另一方面,如果您确实有 USE_TZ=True
.
我会说它确实有效,并且您可以从直接设置date
字段而不是默认值的地方获得RunTimeWarning
。尝试缩小警告触发时间的范围。