1. 程式人生 > 程式設計 >django 解決model中類寫不到資料庫中,資料庫無此欄位的問題

django 解決model中類寫不到資料庫中,資料庫無此欄位的問題

如果你遇到了這個錯誤–MySQL Strict Mode is not set for database connection ‘default'

還有這種錯誤,models中的程式碼

django 解決model中類寫不到資料庫中,資料庫無此欄位的問題

django 解決model中類寫不到資料庫中,資料庫無此欄位的問題

為什麼會出現這種錯誤呢?有兩種可能,一種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檔案中多加了逗號

django 解決model中類寫不到資料庫中,資料庫無此欄位的問題

所以說一定要細心,不要粗心,遇到錯誤一定要細心,哎,我就…

解決方法,添上option和去掉逗號就ok了唄

去掉逗號之後刪庫創庫,重新輸入

python manage.py makemigrations
python manage.py migrate

兩條命令,即可

django 解決model中類寫不到資料庫中,資料庫無此欄位的問題

把它也記得刪了

django 解決model中類寫不到資料庫中,資料庫無此欄位的問題

這樣就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中類寫不到資料庫中,資料庫無此欄位的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。