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 %}
  • 相关阅读:
    Java-对象数组排序
    aoj 0118 Property Distribution
    poj 3009 Curling 2.0
    poj 1979 Red and Black
    AtCoder Regular Contest E
    AtCoder Beginner Contest 102
    AtCoder Beginner Contest 104
    SoundHound Inc. Programming Contest 2018
    poj 3233 Matrix Power Series
    poj 3734 Blocks
  • 原文地址:https://www.cnblogs.com/chengege/p/10694994.html
Copyright © 2011-2022 走看看