[python] 이 장고 앱 튜토리얼에서 choice_set은 무엇입니까?

Django 튜토리얼에는 첫 번째 Django 앱 작성, 1 부이 줄이 있습니다 .

p.choice_set.create(choice='Not much', votes=0)

choice_set존재 는 어떻게 부름을 받는가?

choice부분이 Choice튜토리얼에서 사용되는 모델의 소문자 버전 이라고 가정 하지만 무엇 choice_set입니까? 정교하게 할 수 있습니까?

업데이트 : Ben 의 답변을 바탕 으로이 문서를 찾았습니다 : “뒤로”관계를 따르십시오 .



답변

Choice각각과 관련이 있는 외래 키를 만들었습니다 Question.

따라서 각 필드에는 모델에서 선언 Choicequestion필드 가 명시 적으로 있습니다 .

Django의 ORM은 관계를 거꾸로 따릅니다. Question각 인스턴스 foo_set에서 Foo해당 모델에 대한 ForeignKey필드 가있는 모델 인 where 라는 필드를 자동으로 생성합니다 .

choice_setA는 RelatedManager의 검색어 세트 만들 수있는 Choice받는 관련된 개체 Question예 인스턴스q.choice_set.all()

foo_setDjango가 자동으로 선택 하는 이름 지정이 마음에 들지 않거나 동일한 모델에 대해 둘 이상의 외래 키가 있고 구별 해야하는 경우에 related_name인수를 사용하여 자신의 재정의 이름을 선택할 수 있습니다 ForeignKey.


답변