Django auto_now_add=True 但“收到了一个天真的日期时间”

Cam*_*ail 5 django django-models

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

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)

有什么想法吗?

小智 -1

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

start_date = models.DateTimeField(default=timezone.now)
Run Code Online (Sandbox Code Playgroud)

确保您已运行python manage.py makemigrations并且python manage.py migrate在进行更改后。