2011-03-20 3 views
1

나는이 장고 코드를 분석하려고 나는 모델이 "표시"라는 이름의 열 중 하나 "forum_node"라는 테이블을 포함 알고Django에서 "children__"은 무엇을 의미합니까? 문서화 된 곳은 어디입니까?

Question.objects.filter(children__marked=True) 

(장고 어떤 친숙하지 않고, 내가 추가 할 수 있습니다). 내가 이해하는 바에 따르면,이 진술은 그 자녀 (= 응답) 중 어느 것이 받아 들여지는 (또는 "표시"된) 모든 질문을 가져옵니다. 이 마술은 어떻게 작동합니까?

+0

'children__'이 아니라'children__marked'입니다. – delnan

+0

@delnan - "children__"은 특별한 접두어이고 "marked"는 이것이 적용되는 특정 열이므로 "children__marked"라고 가정했습니다. – ripper234

+0

아니요, 이름은 몇 개의 이름에 관계없이 이름 일뿐입니다. 밑줄이 그 안에 있습니다. (글쎄, 두 개의 주요한 밑줄은 이름의 맹 글링을 유발하지만, 여전히 더 길고 더 모호한 식별자이지만 여전히 식별자입니다.) – delnan

답변

3

무엇이 발생하는지 이해하려면 query options and the object-relational mapping을 설명하는 장고 문서를 자세히 살펴보아야합니다.

children는 관련 모델을 의미한다 (이 예를 들어 node, 관련 모델을 나타내는, 당신의 question 모델에 따라 M2M 또는 외래 키 필드라는 이름의 자녀이어야 함) 및 marked는 관련 모델에 필드입니다. 적어도 하나 개의 Node 모델이 바로이 두 테이블에 참여하고있다

Question.objects.filter(children__marked=True) 

Question 모델을 반환 :

question = models.ForeignKey(Question, related_name='children') 
marked = models.BooleanField() 

문 :

2

Node 모델은 아마 같은 것을 포함 marked=True.

관련 문제