在模型中添加了外鍵,而後一直顯示**_id無數值mysql
緣由在於在model中新添加字段,沒有寫進數據庫sql
正確操做爲:shell
首先,進入開發環境(也就是說,不是在發佈環境裏):數據庫
1.在你的模型裏添加字段。django
2.運行 manage.py sqlall [yourapp] 來測試模型新的 CREATE TABLE 語句。 注意爲新字段的列定義。服務器
3.開啓你的數據庫的交互命令界面(好比, psql 或mysql , 或者能夠使用 manage.py dbshell )。 執行 ALTER TABLE 語句來添加新列。app
4.使用Python的manage.py shell,經過導入模型和選中表單(例如, MyModel.objects.all()[:5] )來驗證新的字段是否被正確的添加 ,若是一切順利,全部的語句都不會報錯。svn
而後在你的產品服務器上再實施一遍這些步驟。工具
1.啓動數據庫的交互界面。測試
2.執行在開發環境步驟中,第三步的ALTER TABLE語句。
3.將新的字段加入到模型中。 若是你使用了某種版本控制工具,而且在第一步中,已經提交了你在開發環境上的修改,如今,能夠在生產環境中更新你的代碼了(例如,若是你使用Subversion,執行svn update。
4.從新啓動Web server,使修改生效。
參考:http://djangobook.py3k.cn/2.0/chapter10/