Django數據模型中關於on_delete的使用
- 2020 年 3 月 5 日
- 筆記
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), )