Django生成數(shù)據(jù)庫(kù)及添加用戶(hù)報(bào)錯(cuò)解決方案
Django生成數(shù)據(jù)庫(kù)表時(shí)報(bào)錯(cuò) __init__() missing 1 required positional argument: ’on_delete’
原因:
在django2.0后,定義外鍵和一對(duì)一關(guān)系的時(shí)候需要加上on_delete選項(xiàng),此參數(shù)為了避免兩個(gè)表里的數(shù)據(jù)不一致問(wèn)題,不然會(huì)報(bào)錯(cuò)
例如:
owner=models.ForeignKey(UserProfile)--->報(bào)錯(cuò)
owner=models.ForeignKey(UserProfile,on_delete=models.CASCADE) --在老版本這個(gè)參數(shù)(models.CASCADE)是默認(rèn)值
參數(shù)說(shuō)明:
on_delete有CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET()五個(gè)可選的值
CASCADE:級(jí)聯(lián)刪除。
PROTECT:報(bào)完整性錯(cuò)誤。
SET_NULL:將外鍵設(shè)置為null,前提是允許為null。
SET_DEFAULT:將外鍵設(shè)置為一個(gè)默認(rèn)值
SET():調(diào)用外面的值,可以是一個(gè)函數(shù)
注:一般使用CASCADE就可以了。
在使用Django添加用戶(hù)時(shí)出現(xiàn)報(bào)錯(cuò):
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ù)庫(kù)名稱(chēng) ’USER’: ’root’, # 你的數(shù)據(jù)庫(kù)用戶(hù)名 ’PASSWORD’: ’123456’, # 你的數(shù)據(jù)庫(kù)密碼 ’HOST’: ’’, # 你的數(shù)據(jù)庫(kù)主機(jī),留空默認(rèn)為localhost ’PORT’: ’3306’, # 你的數(shù)據(jù)庫(kù)端口 ’OPTIONS’: { 'init_command': 'SET foreign_key_checks = 0;', # 取消外鍵檢查 } } }
問(wèn)題解決!??!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)2. 解析原生JS getComputedStyle3. jsp EL表達(dá)式詳解4. xpath簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理5. msxml3.dll 錯(cuò)誤 800c0019 系統(tǒng)錯(cuò)誤:-2146697191解決方法6. css代碼優(yōu)化的12個(gè)技巧7. jsp實(shí)現(xiàn)登錄驗(yàn)證的過(guò)濾器8. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))9. ASP常用日期格式化函數(shù) FormatDate()10. 輕松學(xué)習(xí)XML教程
