美文网首页Python
TypeError: __init__() missing 1

TypeError: __init__() missing 1

作者: 小雨Coding | 来源:发表于2020-04-22 15:54 被阅读0次

    问题

    Python编程从入门到实践第18章,18.2.4小节定义模型Entry下的models.py,


    图片.png

    创建好模型类,生成迁移文件时系统报错:


    图片.png

    错误类型

    TypeError: __init__() missing 1 required positional argument: 'on_delete'
    

    报的是类型错误,缺少一个必要的位置参数’on_delete‘

    错误分析

    models.py代码中:

    class Entry(models.Model):
        topic = models.ForeignKey(Topic)
    

    在关联外键的函数中,’on_delete'在以前的Django版本中默认具备models.CASCADE参数,然而在新的版本中需要额外加上这个参数,所以会报错缺少参数。

    解决办法

    手动添加on_delete参数,

    class Entry(models.Model):
    topic = models.ForeignKey(Topic,on_delete=models.CASCADE,)
    

    再次迁移数据库就成功了。


    图片.png

    相关文章

      网友评论

        本文标题:TypeError: __init__() missing 1

        本文链接:https://www.haomeiwen.com/subject/famiihtx.html