2011-01-06 3 views
5

나는 다음과 같은 모델이있는 경우 :Select_related() 이전 버전과의 관계 - 자동차 모델 인구

class Contact(models.Model) 
    name = models.CharField(max_length=100) 
    ... 

class ContactAddress(models.Model) 
    line1 = models.CharField(max_length=100) 
    line2 = models.CharField(max_length=100) 
    ... 
    contact = models.ForeignKey(Contact) 

내가 지금 모든 연락처를 잡아 원하는 주소가 될 수 있도록 자동으로 채워합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 지금까지 내가 찾은 유일한 방법은 내가 원하는 연락처를 걸러 내고 각 연락처 주위를 반복하여 Contact.addresses에 할당하는 것입니다. 그런 다음 템플릿의 각 연락처 주소를 출력하는 데 사용합니다.

더 좋은 방법이 있나요? Select_related()는 내가 원하는 것을 거의 수행하지만 반대 방향으로는 작업 할 수없는 것 같습니다.

미리 감사드립니다.

답변

4

맞습니다. select_related은 앞으로 만 작동합니다! 보다 효율적인 역방향 조회를 수행하려면 this을 참조하십시오!

+0

명확히하기 위해 OneToOne 필드에서만'select_related'를 사용하여 역방향 조회를 할 수 있습니다 - FK 또는 M2M에서는 작동하지 않습니다 –

관련 문제