我对Django非常熟悉,但最近注意到模型中存在on_delete = models.CASCADE和on_delete = models.PROTECT选项,
或两者都相同(我只使用on_delete = models.CASCADE,当我删除父条目时,它将删除所有相关条目)
我搜索了相同的文档,但找不到更多内容,
Django 2.0
多对一的关系。需要两个位置参数: 与模型相关的类和on_delete选项。 要创建一个递归关系 - 一个与自身具有多对一关系的对象 - 使用models.ForeignKey('self', on_delete = models.CASCADE)。
答案 0 :(得分:4)
CASCADE
级联删除。 Django模仿的行为
SQL constraint ON DELETE CASCADE
并删除该对象
包含ForeignKey
。
PROTECT
防止raising
删除引用的对象
ProtectedError
,django.db.IntegrityError
的子类。
事情会被删除,因为一旦您更改了模型,您需要makemigrations
和migrate
来查看更改。