2014-07-18 64 views
0

我有一个在Django模板命名income字典,我也有一个名为我的模板factors名单,我想是这样的:如何访问django模板中的字典元素?

{% for factor in factors%} 
<div> {{ income[factor.id] }} </div> 
{% endfor %} 

但{{收入[factor.id]}}是错误的,我该如何做这样的事情?

回答

2

你可以写一个模板标签,像这样:

@register.filter 
def get_value(d, key): 
    return d.get(key) 

,并使用它,像这样:

{{ income|get_value:factor.id }} 
-1

编辑:由@kbnk指出的,我错了,这不工作。

如果你不希望创建一个过滤器,你可以尝试以下方法:

{% for factor in factors %} 
    {% with factor_id=factor.id %} 
     <div> {{ income.factor_id] }} </div> 
    {% endwith %} 
{% endfor %} 

这工作,因为你可以做Django模板字典型望风。检查Django模板文档的更多详细信息:https://docs.djangoproject.com/en/dev/ref/templates/api/#variables-and-lookups

+2

这将无法正常工作,因为模板将采用字面字符串“factor_id”作为字典键,而不是“factor_id”变量的值。 – knbk

+0

@kbnk:我可以做任何事情来解决这个问题并使用这种方法吗?我不想为这个 – Navid777

+0

@knbk创建一个过滤器啊你说得对,好电话 –

相关问题