1. 程式人生 > >Django2.0 on_delete屬性

Django2.0 on_delete屬性

Django2.0建欄位關聯相應表時沒寫on_delete屬性報錯 TypeError: init() missing 1 required positional argument: ‘on_delete’
下面on_delete值的含義

on_delete=None,               # 刪除關聯表中的資料時,該資料也會被刪除,不存在
on_delete=models.CASCADE,     # 刪除關聯資料,與之關聯也刪除
on_delete=models.DO_NOTHING,  # 刪除關聯資料,什麼也不做
on_delete=models.PROTECT,     # 刪除關聯資料,引發錯誤ProtectedError
on_delete=models.SET_NULL,    # 刪除關聯資料,與之關聯的值設定為null(前提FK欄位需要設定為可空)
on_delete=models.SET_DEFAULT, # 刪除關聯資料,與之關聯的值設定為預設值(前提FK欄位需要設定預設值)
on_delete=models.SET,         # 刪除關聯資料,
 a. 與之關聯的值設定為指定值,設定:models.SET(值)
 b. 與之關聯的值設定為可執行物件的返回值,設定:models.SET(可執行物件)
 
 def func():
       return 10

class MyModel(models.Model):
        user = models.ForeignKey(
        to="User",
        to_field="id"
        on_delete=models.SET(func),)