django 解決model中類寫不到資料庫中,資料庫無此欄位的問題
阿新 • • 發佈:2020-05-20
如果你遇到了這個錯誤–MySQL Strict Mode is not set for database connection ‘default'
還有這種錯誤,models中的程式碼
為什麼會出現這種錯誤呢?有兩種可能,一種settings少了options,一中是你的models檔案中加了逗號
第一種可能
settings中需要新增以下欄位
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql','NAME': 'mxshop','HOST': '127.0.0.1','PORT': '3306','USER': 'mxshop','PASSWORD': 'BSfdsfdsmxF','OPTIONS': { "init_command": "SET default_storage_engine='INNODB'" } } } DATABASES['default']['OPTIONS']['init_command'] = "SET sql_mode='STRICT_TRANS_TABLES'"#排除錯誤
第二種可能
models.py檔案中多加了逗號
所以說一定要細心,不要粗心,遇到錯誤一定要細心,哎,我就…
解決方法,添上option和去掉逗號就ok了唄
去掉逗號之後刪庫創庫,重新輸入
python manage.py makemigrations
python manage.py migrate
兩條命令,即可
把它也記得刪了
這樣就ok了
補充知識:django框架model中外來鍵不落實到資料庫
在外來鍵欄位的引數中新增db_constraint=False即可,資料庫中沒有外來鍵關係,程式碼中依然可以按照正常外來鍵方式使用。
例如:
class User(models.Model): name = models.CharField(max_length=255) room = models.ForeignKey(Room,db_constraint=False) class Room(models.Model): status = models.IntegerField(default=1)
以上這篇django 解決model中類寫不到資料庫中,資料庫無此欄位的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。