代码:
from jinja2 import Template
print(Template('{{ "2016.10.26_cc37528" | truncate(11, True) }}').render())
print(Template('{{ "2016.10.26_cc37528" | truncate(12, True) }}').render())
print(Template('{{ "2016.10.26_cc37528" | truncate(13, True) }}').render())
print(Template('{{ "2016.10.26_cc37528" | truncate(14, True) }}').render())
2016.10....
2016.10.2...
2016.10.26...
2016.10.26_...
2016.10....
2016.10.2...
2016.10.26_cc37528
2016.10.26_cc37528
{{ "2016.10.26_cc37528" | truncate(13, True) }}
检查这是否是由leeway
参数引起的。 最近更改了它的默认值。
https://github.com/pallets/jinja/blob/master/jinja2/filters.py#L467
它是。 将 leeway 设置为 0 可以解决此问题。 我会说使用短字符串时违反了POLA。
是的,我同意@AMDmi3 。 我们也遇到了这个问题。
问题是 Jinja 有一个固执的实现,它与作为通用模板引擎的用法不兼容。
我也发现了这个问题,并花了几个小时来查找错误。 显然,新选项应该向后兼容,默认值应该是leeway = 0
。
无论谁开始使用新选项leeway
他们都会知道它存在并会使用他们喜欢的值。 那些不知道新参数的人不需要更改他们的代码......
最有用的评论
它是。 将 leeway 设置为 0 可以解决此问题。 我会说使用短字符串时违反了POLA。