는 다음과 내가 가지고 말할 수 있습니다 사용 :는 값이 두 모델을 얻을 수 select_related 멀리
class Model1(Model):
field1 = ForeignKey(Model2)
query_field = IntegerField()
class Model2(Model):
field2 = ForeignKey(Model3)
class Model3(Model)
field3 = SomeDesiredValue
지금 나는 Model1
테이블에 쿼리를하고 Model3
에서 field3
를 꺼내 싶다. 제 질문은 select_related
의 성과입니다.
나는 다음과 있으리라 믿고있어
query = Model1.objects.filter(query_field=filter_paramter).select_related('field1')
여전히 데이터베이스에 접속합니다한다면?
query[0].field1.field2.field3
더 빨리 진행하려면 어떻게해야합니까?
query = Model1.objects.filter(query_field=filter_paramter).select_related('field1__field2')
FWIW을 물어, 당신은 말에 의해 실행됩니다 실제 SQL 쿼리를 볼 수 있습니다 'print query.query' (예제의 변수 사용) - [here] (http://stackoverflow.com/q/971667/2428558)와 관련된 질문입니다. – Jackall