python data_error ai_generated true

删除保护错误:无法删除'Author'的某些实例,因为它们通过受保护的外键'Article.author'被引用

django.db.models.deletion.ProtectedError: Cannot delete some instances of model 'Author' because they are referenced through protected foreign keys: 'Article.author'

ID: python/django-orm-delete-error

其他格式: JSON · Markdown 中文 · English
80%修复率
87%置信度
0证据数
2024-10-15首次发现

版本兼容性

版本状态引入弃用备注
3.x active

根因分析

删除操作被外键保护约束阻止,关联对象存在

English

尝试删除被外键引用的对象,且外键设置了PROTECT

generic

解决方案

  1. 95% 成功率
    article.delete() 然后 author.delete()
  2. 90% 成功率
    在模型中设置on_delete=models.CASCADE

无效尝试

常见但无效的做法:

  1. 90% 失败

    Django ORM没有force_delete方法,会破坏数据完整性

  2. 80% 失败

    删除操作无法完成