2012-02-17 112 views
2

我有一个包含一个外键,不同模型的模型:缓存Django的SQL查询外键

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

林我的模板,我已经为MyModel并在三个不同的地方一个实例访问它的图片以这种方式属性{{ mymodel.picture }}

当我打开debug_toolbar时,我发现有三个不同的SQL查询是对数据库进行的。 Django不应该缓存第一个查询并在之后提供它吗?是否有可能这样做?

+0

是的,应该的Django后的第一个缓存这些查找。还有其他一些事情正在发生 - 你确定每次都有相同的'mymodel'实例吗? – 2012-02-17 17:24:30

回答

2
{% with picture = mymodel.picture %} 

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

{% endwith %}