1. 程式人生 > >on_delete引數取值含義

on_delete引數取值含義

整理一下on_delete引數的各個值的含義:

on_delete=None,               # 刪除關聯表中的資料時,當前表與其關聯的field的行為
on_delete=models.CASCADE,     # 刪除關聯資料,與之關聯也刪除
on_delete=models.DO_NOTHING,  # 刪除關聯資料,什麼也不做
on_delete=models.PROTECT,     # 刪除關聯資料,引發錯誤ProtectedError
# models.ForeignKey('關聯表', on_delete=models.SET_NULL, blank=True, null=True)
on_delete=models.SET_NULL,    # 刪除關聯資料,與之關聯的值設定為null(前提FK欄位需要設定為可空,一對一同理)
# models.ForeignKey('關聯表', on_delete=models.SET_DEFAULT, default='預設值')
on_delete=models.SET_DEFAULT, # 刪除關聯資料,與之關聯的值設定為預設值(前提FK欄位需要設定預設值,一對一同理)
on_delete=models.SET,         # 刪除關聯資料,
 a. 與之關聯的值設定為指定值,設定:models.SET(值)
 b. 與之關聯的值設定為可執行物件的返回值,設定:models.SET(可執行物件)