Jinja: 文字列のリストに「フォーマット」を適用するにはどうすればよいですか?

作成日 2016年02月16日  ·  4コメント  ·  ソース: pallets/jinja

私はPythonのようなことをしようとしています

("db.%s.dump" % n for n in names)

私は試した

{{ databases | map("format", "db.%s.dump") }}
{{ "db.%s.dump" | map("format", databases) }}

そしてもっとたくさん。 私が試したすべてが失敗しました。

ドキュメントは役に立ちません:-(

最も参考になるコメント

@NormanDenayer map()で別のフィルターに渡したい場合を除いて、問題ありません。

全てのコメント4件

なぜ{% for n in names %} {{ "db.%s.dump"|format(n) }} {% endfor %}ないのですか?

@NormanDenayer map()で別のフィルターに渡したい場合を除いて、問題ありません。

個人的に私は独自のプラグインを書くことで終わりました:

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を参照して

このページは役に立ちましたか?
0 / 5 - 0 評価