TIL #39 Django - ForeignKey, on_delete 속성

강경훈·2020년 9월 20일
0
post-thumbnail

django에서 table들을 연결 할 때 ForeignKeyField을 사용 한다. 이 때 on_delet 속성을 통해 참조하고 있는 값이 삭제 되었을 때, 해당 row을 같이 삭제 할지, 또는 그대로 유지 할지 등을 정할 수 있다.

class product(models.Model)
	name = CharField(max_length = 50)

class ProudctImage(models.Model)
	product = ForeignKeyField(Product, on_delete = "속성값")
        image   =  URLField()
  1. CASCAD: 참조하고 있는 값이 삭제 되면 해당 row를 전체 삭제
  2. SET_NULL: 참조하고 있는 값이 삭제 되면 foreign key 값을 null로 바꾼다.
  3. PROTECT: 참조하고 있는 값이 삭제 될 때 삭제 되지 못하게 ProtectError 발생.
  4. SET_DEFAULT: 참조하고 있는 값이 삭제 되면 foreign key 값은 미리 설정해 둔 default 값으로 바뀐다.
  5. SET(): SET의 ()안에 함수를 넣고 그 함수에 의해 foreign key 값이 바뀐다.
  6. DO_NOTHONG: 참조하고 있는 값이 삭제 되도 아무것도 하지 않는다.
profile
방랑하는 개발자

0개의 댓글