2017-08-31 10 views
0

私はJinjaを初めて使用していて、フラスコのアプリでマクロを試しています。だから私はそうのような特別なコールブロックを使用して別のものを呼んでいる1つのマクロ持っている:フラスコJinjaマクロ<input caller = "Macro Anonymous">

{% macro macro1(x, y) %}      
    <div class="row"> 
     {% call macro2(x,y)%}{% endcall %} 
    </div>      
{% endmacro %} 

をしかし、私はレンダリングされたテンプレートを表示するとき、私は私の入力フィールドに奇妙な発信者の属性を見ることができます:

<input caller="<Macro anonymous>"> 

私は何か間違ったことをしたのですが、なぜこれが起きているのか知りたかっただけですか?

答えて

0

これは、呼び出し元のマクロが定義されていないためです。

macro1を定義しましたが、macro2を呼び出しています。

{% macro macro1(x, y) %}      
    <div class="row"> 
     {% call macro1(x,y)%}{% endcall %} 
    </div>      
{% endmacro %} 

documentationにも大きな例があります。

+0

こんにちは、Mekicha、リンクありがとうございます。私はちょうど質問したかった、私は両方のマクロを同じファイルに定義しているので、マクロ2も定義しないでください。 –

+0

これを定義できるかどうか確かめてください。しかし、あなたが呼び出している場合は、あらかじめ定義されたマクロを呼び出す必要があります – Mekicha

+0

私は両方のマクロを定義し、2番目のマクロが最初に呼び出すときに私のファイルに気付きました。しかし、私はそれの上にある定義済みのマクロを呼び出しているので、これは正しく発生しませんか? –