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_set
A는 RelatedManager
의 검색어 세트 만들 수있는 Choice
받는 관련된 개체 Question
예 인스턴스q.choice_set.all()
foo_set
Django가 자동으로 선택 하는 이름 지정이 마음에 들지 않거나 동일한 모델에 대해 둘 이상의 외래 키가 있고 구별 해야하는 경우에 related_name
인수를 사용하여 자신의 재정의 이름을 선택할 수 있습니다 ForeignKey
.