[英]what does on_delete=models.PROTECT and on_delete=models.CASCADE do on Django models?
我對 Django 很熟悉,但最近注意到
on_delete=models.CASCADE<\/code> =models.CASCADE 和
on_delete=models.PROTECT<\/code>選項,
on_delete=models.CASCADE<\/code> models.CASCADE 和on_delete=models.PROTECT<\/code>都在做同樣的事情。
<\/li>
或者兩者都相同(我使用了唯一的
on_delete=models.CASCADE<\/code> ,當我刪除父條目時,它將刪除所有相關條目)
我已經搜索了相同的文檔,但找不到更多的東西:
姜戈 2.0<\/strong>
多對一的關系。 需要兩個位置參數:模型相關的類和 on_delete 選項。 要創建遞歸關系(與自身具有多對一關系的對象),請使用 models.ForeignKey('self', on_delete=models.CASCADE)。
CASCADE
Cascade刪除。 Django模擬SQL constraint ON DELETE CASCADE
的行為,並刪除包含ForeignKey
的對象。
PROTECT
通過raising
ProtectedError
( django.db.IntegrityError
的子類)來防止刪除引用的對象。
事情被刪除,因為一旦你改變了你的模型,你需要做makemigrations
並migrate
以查看更改。
對於on_delete=models.CASCADE
:
您有 2 個模型,即Car和Company 。 你刪除了公司,你也刪除了該公司生產的汽車。
對於on_delete=models.PROTECT
:
您有 2 個模型。 汽車和公司。 你刪除公司,汽車仍然存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.