Macros Jinja模板,如何按照DRY原则导入所有宏?

Macros Jinja模板,如何按照DRY原则导入所有宏?,macros,jinja2,Macros,Jinja2,目前我在很多地方都有: {% from "macros/render_product_materials.html" import render_product_materials %} {% from "macros/render_citation.html" import render_citation %} {% from "macros/render_product_packages.html" import render_product_packages %} {% from "mac

目前我在很多地方都有:

{% from "macros/render_product_materials.html" import render_product_materials %}
{% from "macros/render_citation.html" import render_citation %}
{% from "macros/render_product_packages.html" import render_product_packages %}
{% from "macros/render_icon_explanation_section.html" import render_icon_explanation_section %}
{% from "macros/render_percentage_items.html" import render_percentage_items %}
这个名单还在继续

然后我调用模板中的代码:

{{render_percentage_items('some args',2,34,55)}}
如果我更改一个函数名,我必须在任何地方更改它,如果我添加一个新函数,我必须在任何地方每次都导入它

我只是想做这样的事情:

{%include'macros/all_macros.html%}

然后我将所有导入放入
all_macros.html

但是:导入在上下文中不可用

e、 g


不起作用<代码>渲染百分比项目未找到。现在用jinja的方法是什么?

我不确定,但是你可以尝试-{%import'macros/all_macros.html'作为带有上下文%的all_宏,然后尝试{{all_macros.render_percentage_items('some args',2,34,55)}这将在内部执行{%set..%}宏时起作用,例如
{%set render_percentage_items=render_percentage_items%}
{% include 'macros/all_macros.html' %}

{{render_percentage_items('some args',2,34,55)}}