如何修复Django中‘missing 1 required positional argument: 'on_delete'’错误
问题修复方案
错误原因
你使用的是Django 2.0及以上版本,而参考的教程基于Django 1.x版本。从Django 2.0开始,ForeignKey字段必须显式指定on_delete参数,这是必填项,旧版教程未包含该要求,因此触发报错。
修复步骤
- 打开
C:\mysite\site\miniproject\blog\models.py文件 - 找到第12行的
author字段定义,修改为:
author = models.ForeignKey(User, related_name='blog_posts', on_delete=models.CASCADE)
- 保存文件后,重新执行命令:
python manage.py makemigrations blog
on_delete参数常用配置说明
models.CASCADE:关联的User对象被删除时,对应的Post对象会被级联删除,是博客场景下的常用配置models.PROTECT:阻止删除关联的User对象,会抛出错误models.SET_NULL:将author字段设为NULL(需同时给字段添加null=True参数)models.SET_DEFAULT:将字段值设为预设默认值(需提前给字段设置default参数)
内容的提问来源于stack exchange,提问作者kot may
相关产品推荐
相关产品推荐

