on_delete=models.PROTECT和on_delete=models.CASCADE在Django模型上做什么?

2024-05-15 05:25:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我很熟悉Django,但最近注意到模型中有一个on_delete=models.CASCADEon_delete=models.PROTECT选项

  • on_delete=models.CASCADEon_delete=models.PROTECT都在做同样的事情。
  • 或者两者都相同(我只使用了on_delete=models.CASCADE,当我删除父项时,它将删除所有相关项)

    我已经搜索了相同的文档,但找不到比以下内容更多的内容:

Django 2.0

A many-to-one relationship. Requires two positional arguments: the class to which the model is related and the on_delete option. To create a recursive relationship – an object that has a many-to-one relationship with itself – use models.ForeignKey('self', on_delete=models.CASCADE).


Tags: thetodjango模型onmodels选项protect
1条回答
网友
1楼 · 发布于 2024-05-15 05:25:35
  • CASCADE 级联删除。Django模仿 SQL constraint ON DELETE CASCADE并删除对象 包含ForeignKey

  • PROTECT 防止通过raising删除引用的对象 ProtectedError,是django.db.IntegrityError的一个子类。

这些内容会被删除,因为一旦更改了模型,就需要执行makemigrationsmigrate来查看更改。

相关问题 更多 >

    热门问题