我想在Django模板中使用变量作为字典中的键 . 我不能为我的生活弄明白该怎么做 . 如果我有一个带有名称或ID字段的产品,以及带有产品ID索引的评级字典,我希望能够说:
{% for product in product_list %}
<h1>{{ ratings.product.id }}</h1>
{% endfor %}
在python中,这将通过简单的方式完成
ratings[product.id]
但我不能让它在模板中工作 . 我试过用...没有骰子 . 想法?
4 回答
像这样创建一个模板标签(在你的项目/模板标签中):
用法:
有一个 very dirty 解决方案:
您需要事先准备好数据,在这种情况下,您应该将两元组列表传递给您的模板:
基于eviltnan的答案,如果
key
不是dict
的关键字,他的过滤器将引发异常 .过滤器永远不应该引发异常,但应该fail gracefully . 这是一个更健壮/完整的答案:
基本上,这与Python代码中的
dict.get(key, '')
相同,如果您不想包含try / except块,也可以这样编写,尽管它更明确 .