解决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)
posted @ 2017-12-22 02:12  苏幕遮_凌枫  阅读(35035)  评论(0编辑  收藏  举报