django - {% with %} 模板标签以避免多次执行查询?

标签 django django-templates

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

最佳答案

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

使用 {% with %}虽然确实为将来的电话解决了问题,但我仍然投票支持该观点。

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

您可以立即测试这些想法:)

enter image description here

关于django - {% with %} 模板标签以避免多次执行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5112209/

相关文章:

django - 不要在 Django 模板标签所在的位置渲染空行?

django - 在 Django 模板中使用字符串文字作为模板标签的参数

javascript - Django Post 请求适用于 chrome 但不适用于 firefox

django - Gunicorn、nginx(v 1.3.14)、django 和 gevent-socket.io,位于 dotcloud

python - 在 Django 中使用具有相同值的不同模型字段

django - Django 中的 for 循环迭代

django - 按距离查询注释以在 Django 1.11 中使用 postgis 查找最近的距离似乎不正确

javascript - Django 静态 js 文件不起作用

python - Django 表单未在生产服务器上呈现 - 使用测试服务器在本地正常工作,并且单元测试在生产服务器上通过

python - django if 标签和 ifequal 标签无法正常工作