Django在填充的表上创建DateTimeField(auto_now_add)

时间:2015-11-03 23:07:13

标签: django django-models django-database django-syncdb

我决定将created = Models.DateTimeField(auto_now_add = True)字段添加到已经实例化对象的模型中(当然没有created字段),我将它们保存为initial_data

现在,当我运行syncdb时,我收到错误app_model.created may not be NULL,因为它尝试加载没有该字段的对象。

那么我该如何解决这个问题呢?我希望自动分配时间syncdbobject.created。我可以做到吗?

感谢您的帮助!

2 个答案:

答案 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()