2014-07-18 83 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創建一個過濾器啊你說得對,好電話 –

相關問題