2015-11-03 61 views
2

我决定到created = Models.DateTimeField(auto_now_add = True)字段添加到已经有实例化(当然没有created场)对象的模型,我所以现在,当保存它们作为initial_dataDjango的创建DateTimeField字段(auto_now_add)在人口稠密表

我运行了syncdb,我得到错误app_model.created may not be NULL,因为它试图加载没有该字段的对象。

那么我该如何解决这个问题?我希望它自动分配给我的电话syncdbobject.created。我可以做到吗?

感谢您的帮助!

+0

您是否运行迁移? – Gocht

+0

出于某种原因,我不想使用迁移..我坚持与syncdb。可能不太实际:) – jeff

回答

1

我会使用一个默认值,而不是auto_now_add的。

from django.utils.timezone import now 

class Something(models.Model): 
    created = models.DateTimeField(default=now, editable=False) 

它还使您的数据字段时区感知和使用UTC。

0

后添加一个新的领域模型,你需要创建和运行迁移,通过运行:

>>> python manage.py makemigrations 
>>> python manage.py migrate 

在这种情况下,当它试图创建新的非空场,它会问你是否要添加在你的模型中创建一个默认值,或者如果你想现在定义一个值,你可以选择在控制台中添加一个值。当提示要求输入值,你可以使用datetime模块,使您可以为值写:

datetime.datetime.now()