インポートされたテンプレートにコンテキスト変数が適用されていないようです。多分私は何か間違ったことをしていますか?
マクロを含むテンプレートと、マクロをインポートして使用する別のテンプレートがあります。
macro = ("{% macro some_macro() %}"
"{{ func('a') }}"
"{% endmacro %}")
use_macro = ("{% from 'macro' import some_macro %}"
"{{ some_macro() }}")
loader = jinja2.loaders.DictLoader({'macro': macro,
'template': use_macro})
env = jinja2.Environment(loader=loader)
template = env.get_template('template')
コンテキストでテンプレートをレンダリングしようとすると、定義さfunc
れていないため失敗します:func
rendered = template.render(func=lambda x: x)
func
グローバルにある場合は機能します:
env.globals.update(func=lambda x: x)
rendered = template.render()
これは意図したとおりですか、それともバグのように見えますか?