我制作了一些小宏,用于显示文本行和标签:
{% macro input(name, text, help_text, value="", input_type) -%}
<label for="id_{{name}}">{{text}}<span class="right">{{help_text}}</span></label>
<input id="id_{{name}}" name="{{name}}" value="{{value}}" type="{{input_type}}" />
{{%- endmacro %}
问题是当我调用jinja2宏时:
{{input("username", "Korisničko ime:", "Pomoć", {{value_username}}, "text")}
当我使用{{value_username}}
作为参数调用输入时,我无法使其工作,我总是收到错误。
您知道任何解决方案我如何将{{value_username}}
作为参数调用。
答案 0 :(得分:13)
我相信
{{ input("username", "Korisničko ime:", "Pomoć", value_username, "text") }}
应该有效
答案 1 :(得分:3)
尽管艾美特·巴特勒(Emmett J. Butler)已经提供了一个答案,但是对于宏观参数的排序有一个小小的挑剔。您目前使用以下签名:
input(name, text, help_text, value="", input_type)
您应该始终将包含默认值的参数放在所有其他必需参数之后,因此将顺序更改为:
input(name, text, help_text, input_type, value="")
现在,当使用变量作为参数调用宏时,您不需要使用{{ }}
包围变量,因为您已经在{% ... %}
内。