11

我制作了一些小宏,用于显示文本行和标签:

{% 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}}作为参数。

4

2 回答 2

19

我相信

{{ input("username", "Korisničko ime:", "Pomoć", value_username, "text") }}

应该管用

于 2012-08-28T16:50:46.633 回答
4

尽管 Emmett J. Butler 提供了一个答案,但在宏参数的排序方面还是存在一些小问题。您当前使用以下签名:

input(name, text, help_text, value="", input_type)

您应该始终将包含默认值的参数放在所有其他必需参数之后,因此将顺序更改为:

input(name, text, help_text, input_type, value="")

现在,当使用变量作为参数调用宏时,您不需要将变量括起来,{{ }}因为您已经在{% ... %}.

于 2012-08-28T17:53:01.180 回答