6

我正在尝试使用沙盒 Jinja2 环境来处理模板自定义。

我试过同时使用 DictLoader 和 FunctionLoader,但一直遇到类似的问题……我现在最关心的是 FunctionLoader。

我无法管理include其他import模板(包含宏)。FuctionLoader 指定的“加载”函数永远不会为引用的模板调用。

我试过没有运气:

  • 只是期望导入会使用基本的“导入”和“包含”语法命中加载器
  • 将加载器传递到上下文中,看看它是否会以这种方式拉动
  • 将模板的字典传递到上下文中,也希望它可以引入
  • 还有几件事,我都忘了

我确信必须有一种方法来支持这一点 - 有人能指出我正确的方向吗?

4

1 回答 1

17

导入语法必须使用带引号的字符串。

坏的:

{% import utils %}
{% import utils.macros as macros %}
{% from utils.macros import macro_1 , macro_2 %}

好的:

{% import "utils" as utils %}
{% import "utils.macros" as macros %}
{% from "utils.macros" import macro_1 , macro_2 %}

带引号的字符串被传递到FunctionLoader或用作键DictLoader

于 2013-03-12T17:27:14.440 回答