{%with%} templatetag可以避免多次执行查询?

时间:2011-02-25 00:20:42

标签: django django-templates

如果我在一个模板中的几个地方使用例如{{ some_model.objects.all }},那么每次都会执行查询吗?如果是这样,我应该始终使用{% with some_model.objects.all as some_name %}来避免这种情况吗?我在几个应用程序中看到了这一点,所以我想知道我是否理解正确。

1 个答案:

答案 0 :(得分:3)

是的,它会重复查询。您应该在视图中填充上下文,而不是在模板中调用这些函数。

使用{% with %}确实可以解决问题但是对于将来的调用,但我仍然投票支持该视图。

PS: 我强烈建议下载django-debug-toolbar
https://github.com/dcramer/django-debug-toolbar

您可以在一秒钟内测试这些想法:)

enter image description here