Django on_delete 參數

class A(models.Model):
    date = models.DateField()

class B(models.Model):
    foreign = models.ForeignKey(A, on_delete=models.CASCADE)

on_delete 參數

當一個被外鍵關聯的對象被刪除時,執行的相應操作
CASCADE 模擬SQL語言中ON DELETE CASCADE約束,將定義有外鍵的模型對象同時刪除(django 1.11默認值),即A中被刪除時,B也被刪除 (關聯的那些行)
PROTECT 阻止上面的刪除操作,但是彈出ProtectedError異常
SET_NULL 將外鍵字段設爲null,只有當字段設置了null=True時,纔可以使用該參數
SET_DEFAULT 將外鍵字段設爲默認值,只有當字段設置了default參數是,纔可以使用該參數
DO_NOTHING 什麼也不做
SET() 設置爲一個傳遞給SET()的值火一個回調函數的返回值

其中CASCADESET_NULL 最常用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章