我已经设置了一个自定义模板标记(simple_tag)(使用https://stackoverflow.com/a/7716141/1369798),其定义如下:
templatetags / polls_extras.py
def settings_value(name)
我可以在我的模板中使用,如下所示:
模板/ index.html中
{% settings_value "ALLOWED_BOOL" %}
但这只是将文本插入我的HTML输出中。
在{%if%}中使用带有参数的模板标记的语法是什么?
我尝试了这个但是我收到了错误: TemplateSyntaxError at / Unused'" ALLOWED_BOOL"'在表达式结束时。
模板/ index.html中
{% if settings_value ALLOWED_BOOL %}
You are allowed.
{% endif %}
答案 0 :(得分:1)
您不能将templatetag用作其他模板标签的参数。你在这里的选择是
修改您的settings_value
模板标签,以便它可以在当前上下文中注入值,即:
{%settings_value ALLOWED_BOOL as allowed_bool%} {%if allowed_bool%} 你被允许。 {%endif%}
请注意simple_tag
在这里不起作用,你必须切换到assignement_tag
(如果你的Django版本支持它) - 但是你将失去直接输出的能力在模板中按照实际的方式设置 - 或者写一个完整的自定义模板标签(这并不像最初看起来那么困难)。
RequestContext
呈现的模板才能访问这些变量。