django.utils.timezone returning naive date?
使用django 1.4,我有一个带有datetimefield的模型。我导入django.utils.timezone用作默认值。
1 2 | from django.utils import timezone date = models.DateTimeField(default=timezone.now) |
但是我仍然收到关于datetimefield received naive date的警告。我已经将use-tz设置为true,所以它应该返回已知的日期时间
Djangos输入了一个默认日期值,该值不受TZ影响,因为默认情况下该字段不可为空。将空值设置为真意味着它只会将日期设置为空,因此不会引发警告:
1 | date = models.DateTimeField(default=timezone.now, null=True) |
在我的例子中,我在运行测试时一直收到这个问题。这是因为以前的迁移错误地使用了日期时间而不是时区。我恢复到引起警告的迁移之前,删除了它,再次运行makemigrations。这为我解决了这个问题。
我知道这是站在一边的问题,但你有没有在你的领域尝试过
另一方面,如果您确实有
我认为它确实有效,您可以从某个地方直接设置
now() Returns an aware or naive datetime that represents the current
point in time whenUSE_TZ isTrue orFalse respectively.
号
https://docs.djangoproject.com/en/dev/ref/utils/django.utils.timezone.now.