一尘不染

在Django模板中使用变量作为字典键

django

我想在Django模板的字典中使用变量作为键。我一辈子都无法弄清楚该怎么做。如果我有一个带有名称或ID字段的产品,以及带有该产品ID索引的评级词典,那么我想说:

{% for product in product_list %}
     <h1>{{ ratings.product.id }}</h1>
{% endfor %}

在python中,这可以通过简单的方式完成

ratings[product.id]

但是我无法使其在模板中工作。我尝试使用…没有骰子。有想法吗?


阅读 671

收藏
2020-03-27

共2个答案

一尘不染

你需要预先准备数据,在这种情况下,你应该将两元组列表传递给模板:

{% for product, rating in product_list %}
    <h1>{{ product.name }}</h1><p>{{ rating }}</p>
{% endfor %}
2020-03-27
一尘不染

创建一个这样的模板标签(在yourproject / templatetags中):

@register.filter
def keyvalue(dict, key):    
    return dict[key]

用法:

{{dictionary|keyvalue:key_variable}}
2020-03-27