在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)

 

posted @ 2018-05-05 09:05  追风的小蚂蚁  阅读(575)  评论(0)    收藏  举报