1. 程式人生 > >Django 外來鍵ForeignKey中的on_delete

Django 外來鍵ForeignKey中的on_delete

當你在Django中刪除了一個有著外來鍵關聯的資料時,比如一個作者和他名下的所有的書的資訊,書的外來鍵是作者(一個作者可有好多本書),當你把作者的資訊從資料庫中刪除時,Django提供了一下幾個引數來對作者的書的資料進行操作

外來鍵的定義:

#models.py
class Author(models.Model):
    author = models.CharField(max_length=250)
 
class Books(models.Model):
    book = models.ForeignKey(Author,on_delete=models.CASCADE)

 

CASCADE:刪除作者資訊一併刪除作者名下的所有書的資訊;
PROTECT:刪除作者的資訊時,採取保護機制,丟擲錯誤:即不刪除Books的內容;
SET_NULL:只有當null=True才將關聯的內容置空;
SET_DEFAULT:設定為預設值;
SET( ):括號裡可以是函式,設定為自己定義的東西;
DO_NOTHING:字面的意思,啥也不幹,你刪除你的幹我毛線關係