首页 > 解决方案 > Django auto_now_add=True 但“收到一个天真的日期时间”

问题描述

我有一个带有时区感知自动添加的模型字段,如下所示:

start_date = models.DateTimeField(auto_now_add=True, blank=True)

但是,在运行测试时我仍然会收到 RuntimeWarning:

RuntimeWarning: DateTimeField Survey.start_date received a naive datetime (2020-07-16 03:15:14.463640) while time zone support is active.

当我有以下情况时,我会得到同样的结果:

start_date = models.DateTimeField(default=timezone.now, blank=True)

有什么想法吗?

标签: djangodjango-models

解决方案


你的第二个选项应该没问题。但是您应该删除blank=True,因为通过提供默认值意味着您可以在没有此字段的情况下发送请求。

start_date = models.DateTimeField(default=timezone.now)

确保你已经运行python manage.py makemigrations并且python manage.py migrate在你做出改变之后。


推荐阅读