我正在研究一个使用jinja2作为模板引擎的pylons项目。该项目在模板引擎中添加了许多自定义过滤器。
我有一个模板对象:
>>> t = Template("this is a template {{ var|custom_filter }}!!")
>>> t.render(var="woop woop")
在这个示例中,我得到TemplateAssertionError: no filter named 'custom_filter'
如何轻松渲染模板对象,而无需:从文件加载它们,或者每次我想渲染模板时手动添加每个自定义过滤器。
答案 0 :(得分:1)
您可以将过滤器加载到应用程序环境中。查看this post了解有关如何操作的Pylons特定说明:
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, ...]))