2012-01-05 43 views
0

我正在使用jinja2作为模板引擎的pylons项目。该项目有很多自定义过滤器添加到模板引擎中。使用过滤器渲染jinja2模板对象在主塔上

我有一个模板对象:

>>> t = Template("this is a template {{ var|custom_filter }}!!") 
>>> t.render(var="woop woop") 

在这个例子中,我得到TemplateAssertionError: no filter named 'custom_filter'我怎样才能轻松地渲染模板对象,而不必之一:从文件加载它们,或者我想每次都手动添加的每个自定义过滤器呈现模板。

回答

1

您可以将过滤器加载到应用程序环境中。退房this post关于如何做到这一点的具体塔的指令:

from yourapp.lib import extensions 

config['pylons.app_globals'].jinja2_env = Environment(loader=ChoiceLoader(
      [FileSystemLoader(path) for path in paths['templates']]), 
      extensions=[extensions.custom_filter, ...])) 
+0

这仅适用于当您从文件系统加载模板添加过滤器的模板系统。我正在从字符串中加载模板。 – priestc 2012-01-06 16:02:32