2015-11-03 45 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() 
相關問題