尝试为具有auto_now_add
日期时间字段的模型创建夹具
created_at = models.DateTimeField(auto_now_add=True)
在加载灯具后,会抛出IntegrityError: Problem installing fixture, null value in column "created_at" violates not-null constraint
是否可以让Django确定日期而不是手动输入日期?
[
{
"model": "customer.type",
"pk": 1,
"fields": {
"name": "type",
"created_by": 1
}
}
]
答案 0 :(得分:0)
简单的解决方法 之一将同时使用default
--[DjangoDoc]和editable
--[DjangoDoc]参数,
from django.utils import timezone
class Foo(models.Model):
...
created_at = models.DateTimeField(default=timezone.now, editable=False)
上述解决方案在 Django 2.1 和 Python 3.6 环境下进行了测试和验证。
从Django-Doc of DateField.auto_now_add
首次创建对象时,将字段自动设置为现在。对于创建时间戳很有用。请注意,始终使用当前日期。 不仅是您可以覆盖的默认值。因此,即使您在创建对象时为此字段设置了一个值,也会将其忽略。如果您希望能够修改此字段,请设置以下内容,而不是
auto_now_add=True
这意味着,如果您手动提供任何有效的日期时间,则此设置将覆盖timezone.now()
值。