Eu tento fazer algo como em Python
("db.%s.dump" % n for n in names)
eu tentei
{{ databases | map("format", "db.%s.dump") }}
{{ "db.%s.dump" | map("format", databases) }}
e muito mais. Tudo o que tentei falhou.
A documentação não ajuda em nada :-(
por que não {% for n in names %} {{ "db.%s.dump"|format(n) }} {% endfor %}
?
@NormanDenayer está bem, a menos que você queira passá-lo para outro filtro em map ().
Pessoalmente, terminei escrevendo o próprio plugin:
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)
Uso:
list_of_names | map('format_string', 'hello {}!')
Consulte https://github.com/pallets/jinja/pull/906#issuecomment -548393215 para saber por que estou recusando isso. Ele também contém um filtro que pode fazer isso, ou você pode escrever um filtro mais específico, conforme mostrado acima.
Comentários muito úteis
@NormanDenayer está bem, a menos que você queira passá-lo para outro filtro em map ().