Django模板如何使用变量查找字典值 [英] Django template how to look up a dictionary value with a variable

查看:445
本文介绍了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模板如何使用变量查找字典值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆