私はmakoテンプレートBを2回以上含んでいます。 MakoテンプレートBは特定の引数を期待しており、インクルード時に異なる値に設定する必要があります。 A.makでMakoのインクルードタグに可変引数を渡すことはできますか?
:B.makで
<%include
file="/components/B.mak"
args="lItems=some_variable, foo='bar'"
/>
<%include
file="/components/B.mak"
args="lItems=some_other_variable, foo='moooo'"
/>
:
<%page args="lItems, foo"/>
%for dItem in lItems:
etc
は、この種のものでも可能ですか?私はlItemsを 'some_value'と 'some_other_value'(つまり:A.makに直接コード化された文字列)に設定するとうまくいくことを知っていますが、some_variable = [some,craze,list]
とsome_other_variable = [some,other,craze,list]
でA.makをレンダリングしたいと思います。
上記のコードは私にエラーを与える:
<%include
file="/components/B.mak"
args="lItems=${some_other_variable}, foo='moooo'"
/>
それは構文エラーだ...
私はそれを試してみました:
File ".../mako/runtime.py", line 202, in __str__
raise NameError("Undefined")
NameError: Undefined
また、私はそうのように含まれてやってみましたdefを使用しても:
${the_B_def(foo='bar',lItems=some_variable)}
となり、NameError: Undefined
となります。
私の質問は、どのように変数をテンプレート内の 'テンプレート'に渡すことができますか?
ドキュメントは例があります。http://docs.makotemplates.org /en/latest/syntax.html#include – Javier