##djnagoのモデルで使用するon_deleteについて
表題について、書籍を勉強中に遭遇した疑問です。
実際のコードは以下のような感じでした。
django.models.py
class Test_Model:
user = models.ForeignKey(CustomUser, verbose_name='ユーザー', on_delete=models.PROTECT, null=True)
調べてみるとdjango2.0よりモデル同士を紐づけるときに必須の項目とのこと。
意味合いとしては参照するオブジェクトが削除された時、紐づいているオブジェクトをどうするかというものらしい。
model.〜には以下の種類がある。
・CASCADE
紐づいたオブジェクトを全て削除
・PROTECT
関連づけられたオブジェクトがあると削除が出来ない
・SET_NULL
オブジェクトは残るが該当する項目がNullになる
・SET_DEFAULT
オブジェクトは残り、該当する項目にデフォルト値が入るようになる。
・SET()
オブジェクトは残り該当する項目に関数をセット出来る
・DO_NOTHING
何も処理しない。
どのように処理するのが適切か考えて決めなければ、、、、