Jinja2.10包含的文件仅缩进第一行?

时间:2018-11-16 05:33:58

标签: python-3.x jinja2

我正在尝试从jinja2.8更新到2.10,并且有问题。 在2.8中,我的代码如下:

Case:
{% filter indent(2) %}
{% include "work.tpl" without context %}
{% endfilter %}
End

work.tpl像这样:

Row 1
Row 2

所以,结果是:

Case:
  Row 1
  Row 2
End

但是当我升级到2.10时,我的结果是:

Case:
  Row 1
Row2
End

我如何喜欢2.10中的jinja2.8。请帮帮我!

我的文件在这里: main.py

from jinja2 import Template, Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('.'))
template = env.get_template('template.tpl')
rendered = template.render()
print(str(rendered))

template.tpl在这里:

Test
    {% filter indent(4, first=True) -%}
    {% include 'template2.tpl' without context %}
    {%- endfilter %}
Test

还有template2.tpl:

Row 1
Row 2
Row 3

结果是

Test
    Row 1
Row 2
Row 3
Test

1 个答案:

答案 0 :(得分:0)

通过简短的测试,我无法重现此内容。这是我使用的简化代码:

import jinja2

tmpl = jinja2.Template("""
Case:
{% filter indent(2, first=True) -%}
Row 1
Row 2
{%- endfilter %}
End
""")

print(tmpl.render())

哪些印刷品:

Case:
  Row 1
  Row 2
End

我只向first=True添加了filter选项和内部标记上的破折号,但这没有什么区别,所以我认为您的{{1} }。