Code:
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) }}
Prüfen Sie, ob dies durch das Argument leeway
. Der Standardwert dafür hat sich kürzlich geändert.
https://github.com/pallets/jinja/blob/master/jinja2/filters.py#L467
Es ist. Das Setzen des Spielraums auf 0 behebt das Problem. Ich würde sagen, es ist eine POLA-Verletzung, wenn kurze Zeichenfolgen verwendet werden.
Ja, ich stimme @AMDmi3 zu . Auch dieses Thema haben wir gerade angesprochen.
Das Problem ist, dass Jinja eine eigenwillige Implementierung hat, die mit der Verwendung als universelle Templating-Engine nicht kompatibel ist.
Ich habe auch dieses Problem gefunden und mehrere Stunden damit verbracht, den Fehler zu finden. Offensichtlich sollten neue Optionen abwärtskompatibel sein und der Standardwert sollte leeway = 0
.
Wer auch immer die neue Option leeway
, wird wissen, dass sie existiert und den Wert verwenden, den er möchte. Wer den neuen Parameter nicht kennt, muss seinen Code nicht ändern...
Hilfreichster Kommentar
Es ist. Das Setzen des Spielraums auf 0 behebt das Problem. Ich würde sagen, es ist eine POLA-Verletzung, wenn kurze Zeichenfolgen verwendet werden.