django 解決model中類寫不到數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)無此字段的問題
如果你遇到了這個(gè)錯(cuò)誤–MySQL Strict Mode is not set for database connection ‘default'
還有這種錯(cuò)誤,models中的代碼


為什么會(huì)出現(xiàn)這種錯(cuò)誤呢?有兩種可能,一種settings少了options,一中是你的models文件中加了逗號(hào)
第一種可能
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'"#排除錯(cuò)誤
第二種可能
models.py文件中多加了逗號(hào)

所以說一定要細(xì)心,不要粗心,遇到錯(cuò)誤一定要細(xì)心,哎,我就…
解決方法,添上option和去掉逗號(hào)就ok了唄
去掉逗號(hào)之后刪庫(kù)創(chuàng)庫(kù),重新輸入
python manage.py makemigrations
python manage.py migrate
兩條命令,即可

把它也記得刪了

這樣就ok了
補(bǔ)充知識(shí):django框架model中外鍵不落實(shí)到數(shù)據(jù)庫(kù)
在外鍵字段的參數(shù)中添加db_constraint=False即可,數(shù)據(jù)庫(kù)中沒有外鍵關(guān)系,代碼中依然可以按照正常外鍵方式使用。
例如:
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中類寫不到數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)無此字段的問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Django ForeignKey與數(shù)據(jù)庫(kù)的FOREIGN KEY約束詳解
- pycharm中django框架連接mysql數(shù)據(jù)庫(kù)的方法
- django使用多個(gè)數(shù)據(jù)庫(kù)的方法實(shí)例
- django inspectdb 操作已有數(shù)據(jù)庫(kù)數(shù)據(jù)的使用步驟
- Python web框架(django,flask)實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)讀寫分離的示例
- Django連接本地mysql數(shù)據(jù)庫(kù)(pycharm)的步驟
- Python的Django框架實(shí)現(xiàn)數(shù)據(jù)庫(kù)查詢(不返回QuerySet的方法)
- django 數(shù)據(jù)庫(kù)返回queryset實(shí)現(xiàn)封裝為字典
- Django項(xiàng)目如何給數(shù)據(jù)庫(kù)添加約束
相關(guān)文章
python可迭代類型遍歷過程中數(shù)據(jù)改變會(huì)不會(huì)報(bào)錯(cuò)
這篇文章主要介紹了python可迭代類型遍歷過程中數(shù)據(jù)改變會(huì)不會(huì)報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
Python學(xué)習(xí)之模塊化程序設(shè)計(jì)示例詳解
程序設(shè)計(jì)的模塊化指的是在進(jìn)行程序設(shè)計(jì)時(shí),把一個(gè)大的程序功能劃分為若干個(gè)小的程序模塊。每一個(gè)小程序模塊實(shí)現(xiàn)一個(gè)確定的功能,并且在這些小程序模塊實(shí)現(xiàn)的功能之間建立必要的聯(lián)系。本文將利用示例詳細(xì)介紹一下Python的模塊化程序設(shè)計(jì),需要的可以參考一下2022-03-03
Python中enumerate()函數(shù)詳細(xì)分析(附多個(gè)Demo)
Python的enumerate()函數(shù)是一個(gè)內(nèi)置函數(shù),主要用于在遍歷循環(huán)中獲取每個(gè)元素的索引以及對(duì)應(yīng)的值,這篇文章主要介紹了Python中enumerate()函數(shù)的相關(guān)資料,需要的朋友可以參考下2024-10-10
比較兩個(gè)numpy數(shù)組并實(shí)現(xiàn)刪除共有的元素
這篇文章主要介紹了比較兩個(gè)numpy數(shù)組并實(shí)現(xiàn)刪除共有的元素,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
LyScript實(shí)現(xiàn)對(duì)內(nèi)存堆棧掃描的方法詳解
LyScript插件中提供了三種基本的堆棧操作方法,其中push_stack用于入棧,pop_stack用于出棧,peek_stac可用于檢查指定堆棧位置處的內(nèi)存參數(shù)。所以本文將利用這一特性實(shí)現(xiàn)對(duì)內(nèi)存堆棧掃描,感興趣的可以了解一下2022-08-08

