Django model Foreign key Field on_delete 종류
django에서 모델 구현시 ForeignKeyField를 사용할 일이 매우 많은데
DB상에서 참조무결성을 유지하기위하여 ForeignKeyField가 바라보는 값이
삭제될 때 어떻게 처리해줄지 미리 옵션으로 줄 수 있다.
1. CASCADE
ForeignKeyField가 바라보는 값이 삭제될 때 ForeignKeyField를 포함하는 모델 인스턴스(row)도 삭제된다.
2. PROTECT
ForeignKeyField가 바라보는 값이 삭제될 때 삭제가 되지않도록
ProtectedError를 발생시킨다.
3. SET_NULL
ForeignKeyField가 바라보는 값이 삭제될 때 ForeignKeyField값을 null로 바꾼다. (null=True일 때만 가능)
4. SET_DEFAULT
ForeignKeyField가 바라보는 값이 삭제될 때 ForeignKeyField값을 default 값으로 바꾼다. (default값이 있을 때만 가능)
5. SET()
ForeignKeyField가 바라보는 값이 삭제될 때 ForeignKeyField값을 SET에 설정된 함수 등에 의해 설정된다.
6. DO_NOTHING
ForeignKeyField가 바라보는 값이 삭제될 때 아무런 행동을 취하지 않는다.
참조무결성을 해칠 위험이 있다