أحاول أن أفعل شيئًا مثل بايثون
("db.%s.dump" % n for n in names)
حاولت
{{ databases | map("format", "db.%s.dump") }}
{{ "db.%s.dump" | map("format", databases) }}
والكثير. كل ما حاولت باءت بالفشل.
التوثيق لا يساعد :-(
لماذا لا {% for n in names %} {{ "db.%s.dump"|format(n) }} {% endfor %}
؟
NormanDenayer لا بأس إلا إذا كنت تريد تمريره إلى مرشح آخر في الخريطة ().
أنا شخصياً انتهيت من كتابة البرنامج المساعد الخاص:
from jinja2.utils import soft_unicode
def format_string(text, fmt, *kw):
return soft_unicode(fmt).format(text, *kw)
class FilterModule(object):
def filters(self):
return dict(format_string=format_string)
استعمال:
list_of_names | map('format_string', 'hello {}!')
راجع https://github.com/pallets/jinja/pull/906#issuecomment -548393215 لمعرفة سبب رفضي لهذا. يحتوي أيضًا على مرشح يمكنه تحقيق ذلك ، أو يمكنك كتابة مرشح أكثر تحديدًا كما هو موضح أعلاه.
التعليق الأكثر فائدة
NormanDenayer لا بأس إلا إذا كنت تريد تمريره إلى مرشح آخر في الخريطة ().