Django模板如何⽤⼀个变量查字典值
mydict = {"key1":"value1", "key2":"value2"}
在Django模板中查字典值的常规⽅法是{{mydict.key1}},{{mydict.key2}}。如果键是循环变量怎么办?即:
django怎么学{% for item in list %}  # list中元素,都有⼀个NAME属性
{{ mydict.item.NAME }} # 取出字典中相对应的NAME属性的key对应的value
{% endfor %}
mydict.item.NAME失败。如何解决这个问题?
item.NAME是可以取出来的,但是他只是⼀个单纯的字符串⽽已。是不能总字典中通过点语法取值的。
编写⾃定义模板过滤器:
plate.defaulttags import register
...
@register.filter
def get_item(dictionary, key):
(key)
(我使⽤.get,所以如果键不存在,它返回None。如果你使⽤dictionary[key],如果字典中没有这个key 它会引发⼀个KeyError)。
⽤法:
{% for item in list %}  # list中元素,都有⼀个NAME属性
  {{ mydict|get_item:item.NAME }}
{% endfor %}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。