2014-09-21 34 views
20

我使用userena後添加以下行到我的models.py後「NOT NULL約束失敗」增加的models.py

zipcode = models.IntegerField(_('zipcode'), 
            max_length=5) 

我碰到下面的錯誤後,我打提交按鈕日註冊表格:

IntegrityError at /accounts/signup/ 
NOT NULL constraint failed: accounts_myprofile.zipcode 

我的問題是這個錯誤是什麼意思,是這涉及到Userena?

+3

您是否運行遷移?默認情況下,Django不會選擇對模型的更改。此外,如果您未指定'null = True,blank = True',則它將成爲必填字段 – karthikr 2014-09-21 22:04:20

回答

31

您必須創建遷移,您將在其中指定新字段的默認值,因爲您不希望它爲空。如果不需要null,只需添加null=True並創建並運行遷移。

+2

注意:您可能必須先刪除已存在的遷移文件,然後再次運行makemigrations並遷移。 – lolesque 2016-11-10 16:17:53

6

如果zipcode字段不是必填字段,則添加null = True和blank = True,然後運行makemigrations並遷移命令以成功反映數據庫中的更改。