장고 구문 질문 입니다.

조회수 3763회

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

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

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

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

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

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)