我决定将created = Models.DateTimeField(auto_now_add = True)
字段添加到已经实例化对象的模型中(当然没有created
字段),我将它们保存为initial_data
现在,当我运行syncdb
时,我收到错误app_model.created may not be NULL
,因为它尝试加载没有该字段的对象。
那么我该如何解决这个问题呢?我希望自动分配时间syncdb
为object.created
。我可以做到吗?
感谢您的帮助!
答案 0 :(得分:1)
我使用默认值而不是auto_now_add。
from django.utils.timezone import now
class Something(models.Model):
created = models.DateTimeField(default=now, editable=False)
它还使您的数据字段时区可识别并使用UTC。
答案 1 :(得分:0)
向模型添加新字段后,您需要运行以下命令来创建和运行迁移:
>>> python manage.py makemigrations
>>> python manage.py migrate
在这种情况下,当它尝试创建新的非空字段时,它会询问您是否要在模型中添加创建默认值,或者如果要立即定义值,则可以选择添加在控制台中的价值。当提示询问值时,您可以使用datetime
模块,因此您可以写为值:
datetime.datetime.now()