2010-01-12 6 views
95
장고 튜토리얼이 줄이

, Writing your first Django app, part 1 :Django 튜토리얼 : choice_set이란 무엇입니까?

choice_set는 존재로 불리는 그것이 무엇되는 방법
p.choice_set.create(choice='Not much', votes=0) 

?

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


업데이트 1 : Following relationships "backward" : Ben James '답변에 따라 내가 그것을 설명하는 문서에있는 장소에 위치해 있습니다.

+0

방금 ​​그 문서에 연결되어 있어야합니다, 그것은 내 대답보다 분명합니다. –

+0

@Ben James : 아니요, 다른 방식으로 공식화 해 주셔서 감사합니다. 특히 ORM이 수행하는 작업을 자세히 설명해주십시오. Django 문서는 간결 할 수 있습니다. –

+19

자문 해 주셔서 감사합니다. 튜토리얼에서 설명하지 않으므로 혼란 스럽습니다. – n00b

답변

112

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

Choice에는 명시 적으로 모델에 선언 된 question 필드가 있습니다.

장고 ORM 자동 Foo 그 모델에 ForeignKey 필드 모델이다 foo_set라는 각 인스턴스의 필드를 생성 너무 Question에서 뒤로 관계를 따른다.

choice_set는 예컨대, Question 인스턴스에 관련된 오브젝트의 Choice 검색어 세트를 생성 할 수있다 RelatedManagerq.choice_set.all()

당신은 장고를 자동으로 선택하거나 같은 모델에 하나 이상의 외부 키를 가지고 구별해야하는 경우, 당신은 related_name 인수를 사용하여 자신의 최우선 이름을 선택할 수 있습니다 foo_set 이름이 마음에 들지 않으면 ForeignKey.

+0

감사합니다. 나는 훨씬 더 많은 것을 알고있다. choice_set이 "관리자"가 아닌가? (QuerySet 클래스의 인스턴스를 리턴 할 수있다). 아니면 똑같은가? –

+1

맞습니다. 쿼리 세트를 생성 할 수있는'RelatedManager'입니다. –