django.utils.timezone返回天真的约会?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django.utils.timezone返回天真的约会?相关的知识,希望对你有一定的参考价值。

使用django 1.4我有一个带有datetimefield的模型。我导入了django.utils.timezone作为默认值。

from django.utils import timezone
date = models.DateTimeField(default=timezone.now)

但是我仍然收到有关DateTimeField收到天真日期的警告。我已将USE_TZ设置为true,因此它应该返回知道日期时间

答案

djangos放入一个不知道tz的默认日期值,因为默认情况下该字段不可为空。将null设置为true意味着它只会将日期设置为NULL,因此警告不会引发:

 date = models.DateTimeField(default=timezone.now, null=True)
另一答案

在我的情况下,我在运行测试时一直收到问题。这是因为过去的迁移错误地使用了datetime而不是timezone。我在导致警告的那个之前恢复了迁移,删除了它,再次运行makemigrations。这解决了我的问题。

另一答案

now()

返回一个有意识或天真的日期时间,表示USE_TZ分别为TrueFalse时的当前时间点。

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

另一答案

我知道这是侧面的问题,但你在你的领域尝试过auto_now_add=True吗?无需使用default即可。

另一方面,如果你确实有USE_TZ=True,你的版本应该也可以。

我说它确实有效,你可以从你直接设置RunTimeWarning字段的地方获得date而不是默认设置。尝试缩小何时更准确地触发警告。

以上是关于django.utils.timezone返回天真的约会?的主要内容,如果未能解决你的问题,请参考以下文章

SQLAlchemy DateTime 时区

在熊猫中从天真的本地夏令时转换为天真的本地标准时间

《上古天真论》第五讲文字版

《上古天真论》第三讲文字版

《上古天真论》第七讲文字版

《上古天真论》第八讲文字版