django.utils.timezone returning naive date?



使用 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 TrueFalse的时间点。

https://docs.djangoproject.com/en/dev/ref/utils/#django.utils.timezone.now

我知道

这是回避这个问题,但你有没有在你的领域尝试过auto_now_add=True?无需将default用于您想要的。

另一方面,如果您确实有 USE_TZ=True .

我会说它确实有效,并且您可以从直接设置date字段而不是默认值的地方获得RunTimeWarning。尝试缩小警告触发时间的范围。

相关内容

  • 没有找到相关文章

最新更新