Django模板如何用一个变量查找字典值

Posted rookiehbboy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 %}

以上是关于Django模板如何用一个变量查找字典值的主要内容,如果未能解决你的问题,请参考以下文章

Django 模板变量和 Javascript

Django 模板变量和 Javascript

Django 模板变量和 Javascript

Django 模板变量和 Javascript

Django 模板变量和 Javascript

Django 模板变量和 Javascript