TypeError: __init__() missing 1 required positional argument: 'on_delete'
时间: 2023-08-18 11:34:12 浏览: 40
这个错误通常是因为在定义 Django 模型时,ForeignKey 字段没有正确指定 on_delete 参数。ForeignKey 字段必须指定 on_delete 参数,以告诉 Django 当关联的对象被删除时如何处理这个字段。
例如,如果你有一个模型 A 和一个模型 B,其中 B 是通过 ForeignKey 字段关联到 A 的,你可以这样定义 ForeignKey 字段:
```
class B(models.Model):
a = models.ForeignKey(A, on_delete=models.CASCADE)
```
在这个例子中,on_delete 参数被指定为 models.CASCADE,这意味着当 A 对象被删除时,与之相关的所有 B 对象也将被删除。除了 CASCADE,还有其他几个可用的选项,例如 SET_NULL、SET_DEFAULT、PROTECT 等。
如果你没有指定 on_delete 参数,Django 会引发上面提到的 TypeError。
相关问题
报错:TypeError: __init__() missing 1 required positional argument: 'on_delete'
这个错误通常是由于在定义模型字段时,没有正确指定关联模型和on_delete参数导致的。on_delete参数用于指定在关联模型中删除记录时的操作行为,例如CASCADE、PROTECT、SET_NULL等。
解决方法:
1.检查模型字段定义,确保正确指定了关联模型和on_delete参数。
2.如果使用的是Django 2.0或更高版本,建议使用on_delete=django.db.models.CASCADE等参数。
3.如果使用的是Django 1.9或更早版本,建议使用on_delete=models.CASCADE等参数。
TypeError: __init__() missing 1 required positional argument: 'WSI_object'
这个错误是因为在代码中调用了一个缺少必需参数的初始化方法。具体来说,在引用\[2\]的代码中,创建FictionBook类的实例时,调用了父类Book的初始化方法,但是缺少了一个必需的参数comment,导致报错。解决这个问题的方法是在调用父类初始化方法时,传入正确的参数。具体来说,在FictionBook类的初始化方法中,应该将Book.__init__方法的参数改为(name, author, comment, state=0)。这样就能够正确执行程序了。\[2\]
#### 引用[.reference_title]
- *1* [python错误:TypeError: __init__() missing 1 required positional argument: ‘n](https://blog.csdn.net/m0_51788349/article/details/118655043)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Python成功解决TypeError: __init__() missing 1 required positional argument: ‘comment](https://blog.csdn.net/weixin_44991673/article/details/110099428)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [运行报错provider = models.ForeignKey(Provider, on_delete=True) TypeError(‘on_delete must be ...](https://blog.csdn.net/qq_32057095/article/details/108845704)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]