2012-02-17 3 views
2

У меня есть модель, которая содержит внешний ключ другой модели:Кэширование Django SQL запросы на внешних ключах

class MyModel(models.Model): 
    ... 
    picture = models.ForeignKey(Picture) 
    ... 

Im мой шаблон, у меня есть экземпляр MyModel и в трех разных местах, я доступ это фото атрибут таким образом {{ mymodel.picture }}.

Когда я открываю debug_toolbar, я вижу, что в базу данных были внесены три разных SQL-запроса. Должен ли Django кэшировать первый запрос и обслуживать его потом? Можно ли это сделать?

+0

Да, Django должен кэшировать, что поиск после первого. Что-то еще должно продолжаться - вы уверены, что каждый раз вы используете один экземпляр 'mymodel'? –

ответ

2
{% with picture = mymodel.picture %} 

My Picture Size Large {{ picture }} 
My Picture Size Medium {{ picture }} 
My Picture Size Small {{ picture }} 

{% endwith %} 
Смежные вопросы