Django模板如何用一個變量查找字典值


mydict = {"key1":"value1", "key2":"value2"}

在Django模板中查找字典值的常規方法是{{mydict.key1}},{{mydict.key2}}。如果鍵是循環變量怎么辦?即:

{% for item in list %} # list中元素,都有一個NAME屬性 {{ mydict.item.NAME }} # 取出字典中相對應的NAME屬性的key對應的value {% endfor %}

mydict.item.NAME失敗。如何解決這個問題?

item.NAME是可以取出來的,但是他只是一個單純的字符串而已。 是不能總字典中通過  點語法取值的。

編寫自定義模板過濾器:
from django.template.defaulttags import register ... @register.filter def get_item(dictionary, key): return dictionary.get(key)

(我使用.get,所以如果鍵不存在,它返回None。如果你使用  dictionary[key],如果字典中沒有這個key 它會引發一個KeyError)。

 

用法:

{% for item in list %} # list中元素,都有一個NAME屬性
  
{{ mydict|get_item:item.NAME }}
{% endfor %}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM