Django 튜토리얼에는 첫 번째 Django 앱 작성, 1 부이 줄이 있습니다 .
p.choice_set.create(choice='Not much', votes=0)
choice_set존재 는 어떻게 부름을 받는가?
이 choice부분이 Choice튜토리얼에서 사용되는 모델의 소문자 버전 이라고 가정 하지만 무엇 choice_set입니까? 정교하게 할 수 있습니까?
업데이트 : Ben 의 답변을 바탕 으로이 문서를 찾았습니다 : “뒤로”관계를 따르십시오 .
답변
Choice각각과 관련이 있는 외래 키를 만들었습니다 Question.
따라서 각 필드에는 모델에서 선언 Choice한 question필드 가 명시 적으로 있습니다 .
Django의 ORM은 관계를 거꾸로 따릅니다. Question각 인스턴스 foo_set에서 Foo해당 모델에 대한 ForeignKey필드 가있는 모델 인 where 라는 필드를 자동으로 생성합니다 .
choice_setA는 RelatedManager의 검색어 세트 만들 수있는 Choice받는 관련된 개체 Question예 인스턴스q.choice_set.all()
foo_setDjango가 자동으로 선택 하는 이름 지정이 마음에 들지 않거나 동일한 모델에 대해 둘 이상의 외래 키가 있고 구별 해야하는 경우에 related_name인수를 사용하여 자신의 재정의 이름을 선택할 수 있습니다 ForeignKey.
