在外键上缓存Django SQL查询

时间:2012-02-17 14:12:23

标签: python django django-templates

我有一个包含不同模型的外键的模型:

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

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

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

2 个答案:

答案 0 :(得分:2)

{% with picture = mymodel.picture %}

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

{% endwith %}

答案 1 :(得分:1)

您可以尝试使用带标记{% with p = mymodel.picture %}...{% endwith %},请参阅此处:https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#with