gpt4 book ai didi

django - 检查条件时避免在 django 模板中进行额外的 SQL 调用

转载 作者:行者123 更新时间:2023-12-05 01:30:09 25 4
gpt4 key购买 nike

我注意到在渲染一些具有大量相关实体查找的复杂页面时,我得到了太多的数据库命中。我可以使用 select_related() 对其进行部分优化在 View 中可能的情况下,但我从条件检查中获得了另一部分命中,也许我在文档中忽略了一些可以提供帮助的内容。

我使用 django-debug-toolbar 来了解这个表达式会给我两个数据库命中 - 一个用于检查条目是否存在,另一个用于实际呈现它。我进行此查找的原因是因为我不希望到处都是空的“()”。是否有模板标签或其他东西可以用来将值包围起来?

{% if project__current_phase__recent_status__comment %}
({{ project__current_phase__recent_status__comment }})
{% endif %}

最佳答案

with模板标签。从文档:

Caches a complex variable under a simpler name. This is useful when accessing an "expensive" method (e.g., one that hits the database) multiple times.



例子:
{% with project_comment=project__current_phase__recent_status__comment %}
{% if project_comment %}
({{ project_comment }})
{% endif %}
{% endwith %}

关于django - 检查条件时避免在 django 模板中进行额外的 SQL 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9959575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com