zoukankan      html  css  js  c++  java
  • 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 %}
  • 相关阅读:
    行政区划代码和关键字提取
    清洗数据之地理纬度
    第三周学习进度
    性能战术在代码中的体现
    第二周学习进度
    淘宝网-质量属性场景
    如何做一名好的软件架构师
    寒假学习笔记16
    寒假学习笔记15
    寒假学习笔记14
  • 原文地址:https://www.cnblogs.com/chengege/p/10694994.html
Copyright © 2011-2022 走看看