_runtime. 警告:DateTimeField收到了一个不含时区信息的日期时间值,用于auto_now_runtime。
_runtime. 警告:DateTimeField收到了一个不含时区信息的日期时间值,用于auto_now_runtime。
我们正在使用Django 1.10
我们遇到了很多这样的警告:
RuntimeWarning: DateTimeField Item.updated_at received a naive datetime (2018-05-01 12:35:18.213471) while time zone support is active. RuntimeWarning)
我已经阅读了很多关于这个问题的答案,但在这种情况下我们没有手动设置日期。这个字段(Item.updated_at)设置为
auto_now=True
有没有办法使“auto_now”不是naive状态?
这是模型的部分:
class BaseModel(models.Model): id = models.UUIDField(default=uuid.uuid4, editable=False, db_index=True, unique=True, primary_key=True) created_by = models.CharField(max_length=200) created_at = models.DateTimeField(db_index=True, auto_now_add=True) updated_by = models.CharField(max_length=200) updated_at = models.DateTimeField(db_index=True, auto_now=True)
谢谢
编辑:
这可能与我们在测试中使用的工厂有关吗?
例如:
class ItemFactory(factory.django.DjangoModelFactory): class Meta: model = Item title = "Fake item title" identifier = factory.Sequence(lambda n: n) status_id = Status.Open['id'] due_date = None updated_by = "Fake updater" updated_at = timezone.now()
admin 更改状态以发布 2023年5月24日