本文介绍了Django模板如何使用变量查找字典值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
mydict = {"key1":"value1", "key2":"value2"}
在Django模板中查找字典值的常规方法是 {{mydict.key1}}
, {{mydict.key2}}
。如果键是一个循环变量怎么办?即:
The regular way to lookup a dictionary value in a Django template is {{ mydict.key1 }}
, {{ mydict.key2 }}
. What if the key is a loop variable? ie:
{% for item in list %} # where item has an attribute NAME
{{ mydict.item.NAME }} # I want to look up mydict[item.NAME]
{% endfor %}
mydict.item.NAME
失败。如何解决这个问题?
mydict.item.NAME
fails. How to fix this?
推荐答案
编写自定义模板过滤器:
Write a custom template filter:
from django.template.defaulttags import register
...
@register.filter
def get_item(dictionary, key):
return dictionary.get(key)
(我使用 .get
所以如果key不存在,则返回none,如果你执行 dictionary [key]
,它会引发一个 KeyError
then。)
(I use .get
so that if the key is absent, it returns none. If you do dictionary[key]
it will raise a KeyError
then.)
用法:
{{ mydict|get_item:item.NAME }}
这篇关于Django模板如何使用变量查找字典值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!