私はDjangoに精通していますが、最近on_delete=models.CASCADE
およびon_delete=models.PROTECT
モデルのオプション、
on_delete=models.CASCADE
およびon_delete=models.PROTECT
両方が同じことをしています。または両方が同じです(私はon_delete=models.CASCADE
、親エントリを削除すると、関連するすべてのエントリが削除されます)
私は同じもののドキュメントを検索しましたが、それ以上のものを見つけることができませんでした:
Django 2.
多対1の関係。 2つの位置引数が必要です。モデルが関連付けられているクラスとon_deleteオプションです。再帰的な関係(それ自体と多対1の関係を持つオブジェクト)を作成するには、models.ForeignKey( 'self'、on_delete = models.CASCADE)を使用します。
CASCADE
カスケード削除。 DjangoはSQL constraint ON DELETE CASCADE
の動作をエミュレートし、ForeignKey
を含むオブジェクトも削除します。
PROTECT
Django.db.IntegrityError
のサブクラスであるraising
ProtectedError
による参照オブジェクトの削除を防止します。
モデルを変更したら、変更を確認するためにmakemigrations
とmigrate
を実行する必要があるため、物事は削除されます。