Jinja2 截断字符串变量不起作用

Jinja2 truncate string variable not working

我的 Python 应用程序在前端使用 Jinja。我正在尝试截断字符串变量,但它不起作用。

我可以截断字符串但不能截断变量。

截断失败:

{{ pagetitle | truncate(9,True,'') }}

这截断为 foo bar b:

{{ "foo bar baz qux"|truncate(9,True,'') }}

我想我已经弄明白了。
好像只有trim个词组? {{ "foo bar baz qux"|truncate(9,True,'') }} 会截断,但 {{ "foobarbazqux"|truncate(9,True,'') }} 不会截断。

还有第四个参数要截断,这是一个可以让您实现所需内容的参数。

Strings that only exceed the length by the tolerance margin given in the fourth parameter will not be truncated.

所以,给定:

{{ 'foobarbazqux' | truncate(9, True, '', 0) }}

这产生:

foobarbaz

因此,在您的情况下:

{{ pagetitle | truncate(9, True, '', 0) }}

这就是说,由于您使用的 truncate 没有省略号并且想要切入单词(第二个参数是 True),您还可以考虑使用更简单的 slice:

{{ 'foobarbazqux'[0:9] }}

因此,在您的情况下:

{{ pagetitle[0:9] }}

我不得不添加一个可选的余地值。不确定余地价值在做什么。但它截断正确。

pagetitle='whateverwhatever'
{{ pagetitle | truncate(9,True,'',0) }}