解决TypeError: __init__() missing 1 required positional argument: 'on_delete'
试用Djiango的时候发现执行mange.py makemigrations 和 migrate是会报错,少位置参数on_delete,查了一下是因为指定外键的方式不对,改一下就OK了。
代码如下:
from django.db import models# Create your models here.class BookInfo(models.Model):
"""model of book infomation"""
# 书的标题 字符串类型 最大长度20
btitle = models.CharField(max_length=20) # 出版日期 日期类型
bpub_date = models.DateTimeField()class HeroInfo(models.Model):
"""model of hero information"""
# 字符串类型 最大长度30
hname = models.CharField(max_length=30) # 性别 布尔类型
hgender = models.BooleanField() # 内容 字符串类型 最大长度1000
hcontent = models.CharField(max_length=1000) # 一对多设计 多方持有一方的外键
hbook = models.ForeignKey(BookInfo)
解决方法:
# 一对多设计 多方持有一方的外键 # hbook = models.ForeignKey(BookInfo) hbook = models.ForeignKey('BookInfo', on_delete=models.CASCADE)
原文地址:http://blog.51cto.com/edeny/2062121