簡體   English   中英

on_delete=models.PROTECT 和 on_delete=models.CASCADE 對 Django 模型有什么作用?

[英]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 ProtectedErrordjango.db.IntegrityError的子類)來防止刪除引用的對象。

事情被刪除,因為一旦你改變了你的模型,你需要做makemigrationsmigrate以查看更改。

對於on_delete=models.CASCADE

您有 2 個模型,即CarCompany 你刪除了公司,你也刪除了該公司生產的汽車。

對於on_delete=models.PROTECT

您有 2 個模型。 汽車公司 你刪除公司,汽車仍然存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM