【发布时间】:2017-07-22 00:32:01
【问题描述】:
目前我在很多地方都有:
{% 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
但是:导入在上下文中不可用
例如
{% include 'macros/all_macros.html' %}
{{render_percentage_items('some args',2,34,55)}}
不起作用。 render_percentage_items 未找到。现在 jinja 的方法是什么?
【问题讨论】:
-
我不确定,但您可以尝试 - {% import 'macros/all_macros.html' as all_macro with context %} 然后尝试 {{all_macro.render_percentage_items('some args',2,34, 55)}}
-
这将在执行内部宏的 `{% set .. %}` 时起作用,例如
{% set render_percentage_items = render_percentage_items %}