장고 구문 질문 입니다.


안녕하세요 ^ 장고 공식 문서로 공부 중에 막히는 부분이 있어 질문 합니다. 1.9 문서에서는 N:1 데이터필드 정의 부분에서 ForeignKey 뒤에 (self, on_delete=models.CASCADE) 라고 정의 되어 있는데요. on_delete=models.CASCADE 구문이 어떤 동작을 하는지 궁금합니다. 검색을 해보았는데 잘 모르겠네요 ㅠㅠ


조회수 256


1 답변


모델 A 와 모델 B가 N:1 관계일 때, 모델A에 on_delete=models.CASADE 구문이 설정되어있으면, 모델 B의 어떤 레코드가 삭제되면 삭제될 모델 B의 레코드와 관련있는 모델 A의 레코드들도 연차적으로 삭제됩니다.

만약, on_delete가 설정되어 있지 않으면, 모델 B의 레코드를 참조하고 있는 다른 모델의 레코드가 있기 때문에 삭제할 수가 없게 됩니다.

CASCADE의 의미를 어떤 행위를 직접적으로 지시받지 않았으나, 연관된 어떤 모델이 받은 행위에 같은 영향(행위)을 받게 한다는 것으로 생각하시면 됩니다.

  • 2016년 04월 11일에 작성됨
    리눅스(유닉스) 기반의 시스템에서 웹 서비스를 개발하고 있습니다.

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close