1

私の Jinja テンプレートには、次のようなタプルのリストがあります。

{% set typeLabels = [
    ('type1', 'Label for type 1'),
    ('type2', 'Label for type 2'),
    ('type3', 'Label for type 3')
] %}

順序が重要であるため、lista ではなく aを使用します (別の場所でもリストを使用してリストボックスを生成します)。dict

次に、次のような検索を行う必要があります。

{{ dict(typeLabels)[someType] }}

Python 内で実行すると問題なく動作しますが、Jinja では動作しません。

ジンジャでこれを行うにはどうすればよいですか?

4

1 に答える 1

3

答えがないので、提案に基づいて解決策を投稿します。

collections.OrderedDictJinja はそれを認識していないため、最初に Jinja 環境に追加する必要があります。

JINJA_ENV = jinja2.Environment( . . . )
JINJA_ENV.globals['OrderedDict'] = collections.OrderedDict

そして、テンプレートで:

{% set typeLabels = OrderedDict([
    ('type1', 'Label for type 1'),
    ('type2', 'Label for type 2'),
    ('type3', 'Label for type 3')
]) %}

これで、通常どおり辞書にアクセスできます。

{{ typeLabels[someType] }}
于 2013-09-10T21:33:43.227 に答える