1. 程式人生 > >Django2.0中的on_delete字段取值含義

Django2.0中的on_delete字段取值含義

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字段取值含義