본문 바로가기
Django/Django Rest Framework

7. Django DRF on_delete, DateField

by S.T.Lee 2022. 6. 18.

on_delete

  • CASCADE : FK로 참조하는 레코드가 삭제 될 경우 해당 레코드를 삭제한다.
  • SET_NULL : FK 필드의 값을 Null로 변경해준다. null=True가 정의되어 있어야 사용 가능하다.
  • PROTECT : 해당 레코드가 삭제되지 않도록 보호해준다.
    • 권장하지 않음.
  • SET_DEFAULT : FK 필드의 값을 default로 변경해준다. default=””가 정의되어 있어야 사용 가능하다.
  • SET() : FK 필드의 값을 SET에 설정된 함수를 통해 원하는 값으로 변경할 수 있다.
  • DO_NOTHING : 아무런 동작을 하지 않는다.
    • 참조 관계의 무결성이 손상될 수 있기 때문에 권장하지 않는다.

DateField, DateTimeField

  • default = $date : 지정한 값을 기본 값으로 설정한다.
  • auto_now_add = True : 레코드가 생성될 때의 date를 기준으로 값을 지정한다.
  • auto_now = True : 레코드가 save()될 때마다 갱신된다.
  • 당연하지만 3개는 서로 동시에 쓸수가 없다.(2개 이상도 안됨)