Kode:
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) }}
Periksa apakah ini disebabkan oleh argumen leeway
. Nilai default untuk itu berubah baru-baru ini.
https://github.com/pallets/jinja/blob/master/jinja2/filters.py#L467
Dia. Menyetel kelonggaran ke 0 memperbaiki masalah. Saya akan mengatakan itu pelanggaran POLA saat menggunakan string pendek.
Ya saya setuju @AMDmi3 . Kami baru saja mencapai masalah ini juga.
Masalahnya adalah Jinja memiliki implementasi opini yang tidak sesuai dengan penggunaan sebagai mesin templating tujuan umum.
Saya juga menemukan masalah ini dan menghabiskan beberapa jam untuk menemukan bug. Jelas opsi baru harus kompatibel ke belakang dan defaultnya adalah leeway = 0
.
Siapa pun yang mulai menggunakan opsi baru leeway
mereka akan tahu opsi itu ada dan akan menggunakan nilai yang mereka inginkan. Mereka yang tidak tahu tentang parameter baru tidak perlu mengubah kode mereka...
Komentar yang paling membantu
Dia. Menyetel kelonggaran ke 0 memperbaiki masalah. Saya akan mengatakan itu pelanggaran POLA saat menggunakan string pendek.