Jinja2:说'在另一个宏或模板中渲染这个宏'

时间:2013-04-03 20:02:45

标签: python templates macros jinja2

我想在一个公共容器宏或模板中渲染一些宏。使用伪代码:

宏1

Macro2

Macro3

容器

在模板中:

"render macro1 inside of Container" e.g. {{ macro1 with Container }}

我不想每次都通过渲染Container然后再将宏放入其中,我只需要指定,当这个宏用其他宏包围时

我认为'call'(http://jinja.pocoo.org/docs/templates/#macros)是我正在寻找的,但我现在还不太了解它。任何输入,以及如果不清楚的话,我如何澄清这一点。

1 个答案:

答案 0 :(得分:5)

这对我有用:

{% macro _enclosure() %}
    <div id="topenclosure">hello I'm on top</div>
        {{ caller() }}
    <div id="bottomenclosure">hello I'm on the bottom</div>
{% endmacro %}

{% macro account_user_profile_macro(i) %}
    {% call _enclosure() %}
        {{i.__dict__}}
    {% endcall %} 
{% endmacro %}