2016-09-06 95 views
0

你好,我是新來的Django和我學習Django的這本書: djangobook.com ,我被困在第5章& 6,因爲當我嘗試檢查我的工作時(在http://127.0.0.1:8000/admin/books/book/add/),我得到一些錯誤,我試圖解決這些錯誤,之後他們走了,但我得到了一個新的錯誤,我試圖找出如何解決它,但我仍然沒有知識。 這是我的錯誤:有錯誤空值違反Django的非空約束

IntegrityError at /admin/books/book/add/

null value in column "publicatithon_date" violates not-null constraint

而且你可以在這裏看到我的所有代碼: https://github.com/Anahitahf/mysite2

我怎樣才能解決這個問題? 在此先感謝您的任何反饋意見。

+1

請寫出你的錯誤和你的代碼在哪裏你卡住 –

+0

請注意,Django書是非常過時的。你可以試試[掌握Django](http://masteringdjango.com/django-book/),這是Django 1.8的更新版本。 – Alasdair

+0

你可以閱讀本教程。這是非常基本的,非常好的解釋,幾乎是最新的。 –

回答

0

由於錯誤狀態,publication_date是一個非空字段,您試圖添加未設置publication_date的Book。
一個選項來解決那就是讓publication_date從而在models.py接受空值:

publication_date = models.DateField(null=true,) 

不過,我認爲,這個問題正在引起如你想重新加載頁面?無論如何,請嘗試返回到管理頁面,然後嘗試再次創建新的Book。那麼錯誤不應該發生。如果有,那麼可以將publication_date的null屬性設置爲true。

編輯:
經歷你的模型中沒有他們「publicatithon_date」字段。也許你錯誤地創建了該字段,並在進行遷移後將其從模型中刪除了?您應該在您的終端執行以下操作:

$ python manage.py dbshell 

$ mysql> | psql> ALTER TABLE table_name DROP column publicatithon_date; 

$ python manage.py syncdb 

並且它會從表中刪除錯誤的字段。

+0

謝謝。 我通過刪除列並再次添加它來解決問題,現在publish_date沒有問題。 我不得不說,我需要的是publication_date列,我不能只是放棄它,不要再添加它,但無論如何,放棄它是一個好主意,並再次感謝你。 –

相關問題