如何使用从基本模板文件定义的宏

时间:2013-05-17 01:53:26

标签: jinja2

我有一个模板结构如下:

"base.jinja2"
{% macro a_macro() %}
   {# Something #}
{%- endmacro %}

{# Something #}
{% include "the_second_template.jinja2" %}

"the_second_template.jinja2"
{{ a_macro() }} {# call a_macro function #}

对于此上下文,调用“a_macro”函数的语句不能执行“a_macro”函数形式的“the_second_template.jinja2”文件。

那么,有没有办法做到这一点?或者任何想做类似的想法?

由于

2 个答案:

答案 0 :(得分:2)

从文档中:如果宏是在另一个模板中定义的,则必须先导入它。

答案 1 :(得分:1)

"the_second_template.jinja2"

{% import "base.jinja2" as html %}

{{ html.a_macro() }} {# call a_macro function #}