Jinja: 截断过滤器的错误行为

创建于 2017-04-03  ·  4评论  ·  资料来源: pallets/jinja

代码:

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) }}

您的环境

  • Python版本:3.6.1
  • 金贾版本:2.9.5

最有用的评论

它是。 将 leeway 设置为 0 可以解决此问题。 我会说使用短字符串时违反了POLA。

所有4条评论

检查这是否是由leeway参数引起的。 最近更改了它的默认值。

https://github.com/pallets/jinja/blob/master/jinja2/filters.py#L467

它是。 将 leeway 设置为 0 可以解决此问题。 我会说使用短字符串时违反了POLA。

是的,我同意@AMDmi3 。 我们也遇到了这个问题。

问题是 Jinja 有一个固执的实现,它与作为通用模板引擎的用法不兼容。

我也发现了这个问题,并花了几个小时来查找错误。 显然,新选项应该向后兼容,默认值应该是leeway = 0
无论谁开始使用新选项leeway他们都会知道它存在并会使用他们喜欢的值。 那些不知道新参数的人不需要更改他们的代码......

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

hvnsweeting picture hvnsweeting  ·  4评论

nalzok picture nalzok  ·  5评论

jp-costa picture jp-costa  ·  5评论

harobed picture harobed  ·  6评论

mitsuhiko picture mitsuhiko  ·  3评论