1. 程式人生 > 程式設計 >Django models檔案模型變更錯誤解決

Django models檔案模型變更錯誤解決

表結構的修改

1、表結構修改後,原來表中已存在的資料,就會出現結構混亂,makemigrations更新表的時候就會出錯

比如第一次建模型,漏了一個欄位,後來補上了。(經常遇到模型欄位修改)

Django models檔案模型變更錯誤解決

重新makemigrations,然後報錯

Django models檔案模型變更錯誤解決

資料庫規則:除了新建表,如果你再次增加欄位,資料庫會有一些自動檢測的東西(比如有沒有預設值,是否允許為空)

如果表中已經有資料,這個欄位還是非空的,且沒有設定預設值,後臺檢測不通過就會報錯。

解決方法(有兩種):

1、新增加的欄位,設定允許為空。生成表的時候,之前資料新增加的欄位就會為空。(null=True允許資料庫中為空,blank=True允許admin後臺中為空)

2、新增加的欄位,設定一個預設值。生成表的時候,之前的資料新增加欄位就會應用這個預設值(default=None,預設值為空)

Django models檔案模型變更錯誤解決

刪除0001_initial.py,再次makemigrations

Django models檔案模型變更錯誤解決

接著再往資料庫推送,python3 manage.py migrate

Django models檔案模型變更錯誤解決

原來是自己在資料庫手動新增過,不是通過django方式的。

於是手賤想刪除表,刪了再次執行,發現沒有變化

Django models檔案模型變更錯誤解決

刪表有風險,可能誤刪其他表,如果表不多,所以還是新建一個庫,環境乾淨(強迫症啊)

最後完美解決

Django models檔案模型變更錯誤解決

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。