在Django数据库中变异出现TypeError: __init__() missing 1 required positional argument: 'on_delete'的解决方法
试用Djiango的时候发现执行mange.py makemigrations 和 migrate是会报错,少位置参数on_delete,查了一下是因为指定外键的方式不对,改一下就OK了。
代码如下:
1 from django.db import models 2 3 4 # Create your models here. 5 6 7 class BookInfo(models.Model): 8 """model of book infomation""" 9 10 # 书的标题 字符串类型 最大长度20 11 btitle = models.CharField(max_length=20) 12 13 # 出版日期 日期类型 14 bpub_date = models.DateTimeField() 15 16 17 class HeroInfo(models.Model): 18 """model of hero information""" 19 20 # 英雄的名字 字符串类型 最大长度30 21 hname = models.CharField(max_length=30) 22 23 # 性别 布尔类型 24 hgender = models.BooleanField() 25 26 # 内容 字符串类型 最大长度1000 27 hcontent = models.CharField(max_length=1000) 28 29 # 英雄出现的书 一对多设计 多方持有一方的外键 30 hbook = models.ForeignKey(BookInfo)
解决方法:
1 # 英雄出现的书 一对多设计 多方持有一方的外键 2 # hbook = models.ForeignKey(BookInfo) 3 hbook = models.ForeignKey('BookInfo', on_delete=models.CASCADE)