Django生成數(shù)據(jù)庫及添加用戶報錯解決方案
Django生成數(shù)據(jù)庫表時報錯 __init__() missing 1 required positional argument: 'on_delete'
原因:
在django2.0后,定義外鍵和一對一關(guān)系的時候需要加上on_delete選項,此參數(shù)為了避免兩個表里的數(shù)據(jù)不一致問題,不然會報錯
例如:
owner=models.ForeignKey(UserProfile)--->報錯
owner=models.ForeignKey(UserProfile,on_delete=models.CASCADE) --在老版本這個參數(shù)(models.CASCADE)是默認(rèn)值
參數(shù)說明:
on_delete有CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET()五個可選的值
CASCADE:級聯(lián)刪除。
PROTECT:報完整性錯誤。
SET_NULL:將外鍵設(shè)置為null,前提是允許為null。
SET_DEFAULT:將外鍵設(shè)置為一個默認(rèn)值
SET():調(diào)用外面的值,可以是一個函數(shù)
注:一般使用CASCADE就可以了。
在使用Django添加用戶時出現(xiàn)報錯:
django.db.utils.IntegrityError: (1452, 'Cannot add or update a child row: a foreign key constraint fai
ls (`cms`.`app01_book_author`, CONSTRAINT `app01_book_author_book_id_df0ca405_fk_app01_book_id` FOREIG
N KEY (`book_id`) REFERENCES `app01_book` (`id`))')
[31/Mar/2019 21:20:45] "GET /addbook/ HTTP/1.1" 500 216210
解決辦法,需要在setting.py文件的databases中取消外鍵檢查:
1 DATABASES = {
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'cms', # 你的數(shù)據(jù)庫名稱 'USER': 'root', # 你的數(shù)據(jù)庫用戶名 'PASSWORD': '123456', # 你的數(shù)據(jù)庫密碼 'HOST': '', # 你的數(shù)據(jù)庫主機(jī),留空默認(rèn)為localhost 'PORT': '3306', # 你的數(shù)據(jù)庫端口 'OPTIONS': { "init_command": "SET foreign_key_checks = 0;", # 取消外鍵檢查 } } }
問題解決!?。?/p>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
對python實(shí)時得到鼠標(biāo)位置的示例講解
今天小編就為大家分享一篇對python實(shí)時得到鼠標(biāo)位置的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10Python學(xué)習(xí)筆記之讀取文件、OS模塊、異常處理、with as語法示例
這篇文章主要介紹了Python學(xué)習(xí)筆記之讀取文件、OS模塊、異常處理、with as語法,結(jié)合實(shí)例形式簡單分析了Python針對文件、目錄的讀取、異常處理等相關(guān)操作技巧,需要的朋友可以參考下2019-06-06如何用Python Beautiful?Soup解析HTML內(nèi)容
Beautiful Soup是一種Python的解析庫,主要用于解析和處理HTML/XML內(nèi)容,詳細(xì)介紹Beautiful Soup的使用方式和應(yīng)用場景,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05在交互式環(huán)境中執(zhí)行Python程序過程詳解
這篇文章主要介紹了在交互式環(huán)境中執(zhí)行Python程序過程詳解,運(yùn)行Python腳本程序的方式有多種,目前主要的方式有:交互式環(huán)境運(yùn)行、命令行窗口運(yùn)行、開發(fā)工具上運(yùn)行等,其中在不同的操作平臺上還互不相同,需要的朋友可以參考下2019-07-07Python使用BeautifulSoup4修改網(wǎng)頁內(nèi)容的實(shí)戰(zhàn)記錄
BeautifulSoup除了可以查找和定位網(wǎng)頁內(nèi)容,還可以修改網(wǎng)頁,下面這篇文章主要給大家介紹了關(guān)于Python使用BeautifulSoup4修改網(wǎng)頁內(nèi)容的相關(guān)資料,需要的朋友可以參考下2022-05-05