【发布时间】:2011-03-27 05:20:42
【问题描述】:
例如,假设有一个自定义模板标签
{% custom_tag "parameter" %}
这个标签需要一些严肃的数据库工作来计算。
现在我需要类似的东西(伪代码):
if {% custom_tag "parameter" %}
....
else
....
我知道使用上下文变量我可以做到:
{% with variable.x.y.z as v %}
{% if v %}
Blah-Blah-Blah {{ v }}
{% else %}
No value
{% endif %}
{% endwith %}
但是有没有什么办法可以用模板标签值来实现呢?
编辑: 到目前为止,我想出的唯一选择是从我的模板标签中制作一个过滤器:
{% if "parameter" | custom_tag %}
Blah {{ "parameter" | custom_tag }}
{% else %}
....
{% endif %}
但是这个选项会使 custom_tag 执行两次,这在性能方面并不好
【问题讨论】: