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")}

パラメータとしてinputを呼び出すと、動作させることができず{{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 に答える