Допустим, у меня есть следующее:
class Model1(Model):
field1 = ForeignKey(Model2)
query_field = IntegerField()
class Model2(Model):
field2 = ForeignKey(Model3)
class Model3(Model)
field3 = SomeDesiredValue
Теперь я хочу сделать запрос к таблице Model1
и вытащить field3
из Model3
. У меня вопрос по производительности select_related
.
If I do
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')
print query.query
(используя переменную в вашем примере) - здесь это связанный вопрос. - person Jackall   schedule 06.02.2015