Django2.0中的on_delete字段取值含義
阿新 • • 發佈:2018-09-12
null ssi python pytho miss lang 可執行 value ted 在Django的2.0版本中,外鍵字段
ForeignKey
和一對一字段 OneToOneField
都必須設置 on_delete
屬性,否則會有以下報錯:
TypeError: __init__() missing 1 required positional argument: ‘on_delete‘
對於on_delete
字段的取值含義如下:
on_delete=None, # 刪除關聯表中的數據時,當前表與其關聯的field的行為 on_delete=models.CASCADE, # 刪除關聯數據,與之關聯也刪除 on_delete=models.DO_NOTHING, # 刪除關聯數據,什麽也不做 on_delete=models.PROTECT, # 刪除關聯數據,引發錯誤ProtectedError on_delete=models.SET_NULL, # 刪除關聯數據,與之關聯的值設置為null(前提外鍵字段需要設置為可空,一對一同理) on_delete=models.SET_DEFAULT, # 刪除關聯數據,與之關聯的值設置為默認值(前提FK字段需要設置默認值,一對一同理) on_delete=models.SET, # 刪除關聯數據, # 與之關聯的值設置為指定值,設置:models.SET(value) # 與之關聯的值設置為可執行對象的返回值,設置:models.SET(可執行對象)
Django2.0中的on_delete字段取值含義