Django數據模型中關於on_delete的使用

1、常見的使用方式(設置為null)

2、關於別的屬性的介紹

CASCADE:這就是默認的選項,級聯刪除,你無需顯性指定它。

PROTECT: 保護模式,如果採用該選項,刪除的時候,會拋出ProtectedError錯誤。

SET_NULL: 置空模式,刪除的時候,外鍵欄位被設置為空,前提就是blank=True, null=True,定義該欄位的時候,允許為空。

SET_DEFAULT: 置默認值,刪除的時候,外鍵欄位設置為默認值,所以定義外鍵的時候注意加上一個默認值。

SET(): 自定義一個值,該值當然只能是對應的實體了

3、補充說明:關於SET()的使用

**官方案例**

def get_sentinel_user():      return get_user_model().objects.get_or_create(username='deleted')[0]    class MyModel(models.Model):      user = models.ForeignKey(          settings.AUTH_USER_MODEL,          on_delete=models.SET(get_sentinel_user),      )