我试图用jinja2重新引用一些非常繁重的模板,但我被困在一个include中。
这是我期望的行为:
<h1>{{ key }} </h1>
{% set file = key | include_text %}
{% include file %}
自定义过滤器返回这样的字符串::
texts/my_include.html
但是我收到了这个错误:
jinja2.exceptions.TemplatesNotFound: Tried to select from an empty list of templates
我已经尝试过一些技巧:
但是它一直在发送此错误
我现在想知道jinja2是否允许该实现,或者我是否必须保持此模板的原样(即使生成时间很长)。
有人知道这里的一些技巧吗?
答案 0 :(得分:0)
对于那些最终在未来遇到此问题的人,我已经解决了它,方法是删除不必要的单引号,并在未验证条件的情况下通过自定义过滤器发送一些空文件...(我的错误)
这是我的自定义过滤器:
@environmentfilter
def include_text(ctx, key):
res_dict = {
'key_value_1' : 'file_name_1',
'key_value_2' : 'file_name_2'
}
try:
return "texts/" + res_dict[key] + ".html"
except KeyError:
return "texts/empty.html"
现在,我尝试的第一个解决方案效果很好。