Jinja: السلوك غير الصحيح لعامل التصفية المقتطع

تم إنشاؤها على ٣ أبريل ٢٠١٧  ·  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
  • إصدار Jinja: 2.9.5

التعليق الأكثر فائدة

أنه. يؤدي ضبط الفسحة إلى 0 إلى إصلاح المشكلة. أود أن أقول إنها انتهاك لـ POLA عند استخدام سلاسل قصيرة.

ال 4 كومينتر

تحقق مما إذا كان سبب ذلك هو الوسيطة leeway . تم تغيير القيمة الافتراضية لها مؤخرًا.

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

أنه. يؤدي ضبط الفسحة إلى 0 إلى إصلاح المشكلة. أود أن أقول إنها انتهاك لـ POLA عند استخدام سلاسل قصيرة.

نعم أوافق @ AMDmi3 . لقد وصلنا إلى هذه المشكلة أيضًا.

المشكلة هي أن Jinja لديها تطبيق برأي لا يتوافق مع الاستخدام كمحرك قوالب للأغراض العامة.

لقد وجدت أيضًا هذه المشكلة وقضيت عدة ساعات في العثور على الخطأ. من الواضح أن الخيارات الجديدة يجب أن تكون متوافقة مع الإصدارات السابقة ويجب أن يكون الخيار الافتراضي هو leeway = 0 .
كل من يبدأ في استخدام الخيار الجديد leeway سيعرف أنه موجود وسيستخدم القيمة التي يريدها. أولئك الذين لا يعرفون عن المعلمة الجديدة لن يحتاجوا إلى تغيير الكود ...

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات