2013-08-15 2 views
0

장고 자습서를 읽고 장만합니다. https://docs.djangoproject.com/en/1.3/intro/tutorial01/ Django 1.3.1 및 Python 2.7.3을 Xubuntu 12.04 LTS 가상 머신에서 실행하고 있습니다 (문제가있는 경우).Django 튜토리얼 : 다른 객체는 어디에서 가져 왔습니까?

실제로 정확한 질문을 찾았지만 참조가 오래된 것 같습니다. 누구든지 참조에 대한 실용적인 링크가 있습니까? Where does 'article_set' come from in Django?

미리 감사드립니다.

+4

당신이 무엇을 요구하는 수행 장고 소스에

def get_accessor_name(self): # This method encapsulates the logic that decides what name to give an # accessor descriptor that retrieves related many-to-one or # many-to-many objects. It uses the lower-cased object_name + "_set", # but this can be overridden with the "related_name" option. if self.field.rel.multiple: # If this is a symmetrical m2m relation on self, there is no reverse accessor. if getattr(self.field.rel, 'symmetrical', False) and self.model == self.parent_model: return None return self.field.rel.related_name or (self.opts.object_name.lower() + '_set') else: return self.field.rel.related_name or (self.opts.object_name.lower()) 

코드 _set 접미사로 이 관계는 동적으로 추가된다? –

+0

'article_set'은 모델의 더미 이름입니다. – drabo2005

+0

자습서 에서처럼 Polls라는 모델을 만든 다음 해당 개체에서 다른 개체를 호출하는 등 많은 일이 발생합니다. poll.choice_set.all – Justin

답변

1

Django는 관련 개체 간의 관계를 설정하기 위해 ForeignKey 조회를 수행합니다. 접근이 (models/related.py)

+0

그들은 대문자를 사용합니까? 또한 대단히 감사합니다. – Justin

+0

아니요, 대문자를 사용하지 않습니다. 위의 코드는 모델 이름이 소문자'self.opts.object_name.lower()'로 변환되었음을 보여줍니다. – Alasdair

+0

답변 해 주셔서 감사합니다. – Justin

관련 문제