在我的Jinja模板中,我有一个像这样的元组列表:
{% set typeLabels = [
('type1', 'Label for type 1'),
('type2', 'Label for type 2'),
('type3', 'Label for type 3')
] %}
我使用alist
而不是a,dict
因为顺序很重要(我也使用其他地方的列表来生成列表框)。
然后,我需要像这样进行查找:
{{ dict(typeLabels)[someType] }}
如果您在Python中执行此操作,效果很好,但在Jinja中不起作用。
我该怎么在Jinja做到这一点?
好吧,由于没有答案,我将根据建议发布解决方案。
首先,您必须添加collections.OrderedDict
到Jinja环境中,因为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] }}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句