美文网首页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