14

我的模型创建字段配置如下:

created = models.DateTimeField(auto_now_add=True)

在 JSON 固定装置中,我不想为 created 声明值,但是当我尝试加载固定装置 (loadata) 时出现错误:

created 不能为 NULL

所以我必须在固定装置中提供创造价值还是有其他方式?

4

2 回答 2

0

您可以使用 pre_save 信号来处理 loaddata(fixtures)

def pre_save_for_conference_code_fixture(sender, instance, **kwargs):
  if kwargs['raw']:
    instance.updated_at = timezone.now()
      if not instance.id:
        instance.created_at = timezone.now()

https://docs.djangoproject.com/en/3.1/ref/django-admin/#django-admin-loaddata

于 2020-11-24T10:42:29.957 回答
-3

尝试

import datetime
created = models.DateTimeField(default=datetime.datetime.now)

关于为什么会发生这种情况,你可以在这里阅读:Django auto_now and auto_now_add and Django model field default

于 2012-07-15T20:37:03.303 回答