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 %}

原文地址:https://www.cnblogs.com/chengege/p/10694994.html

时间: 2024-08-03 07:06:18

Django模板如何用一个变量查找字典值的相关文章

C#中在内容页获取其模板页中的变量,或者值

在CSDN的博文中看到了 muziduoxi 的文章:http://blog.csdn.net/muziduoxi/article/details/5386543 虽然里面提到的方法没有解决我的难题,但是我也是根据里面的方法想到现在所用的方法的,所以还是需要感谢  因为我要的变量初始化的时候是空的,如果使用muziduoxi的方法就只能读取到初始化时候的值,我做了个跟踪,发现有模板页的页面运行的时候是先运行本页的变量的定义→  到模板页的变量定义→ 到本页的Page_Load方法→ 到模板页的P

Django模板小坑一个

<ul class="sidebar-menu" data-widget="tree"> <li class="header">导航栏</li> <!-- Optionally, you can add icons to the links --> {# <li><a href="/cmdb/dashboard"><i class="fa

如何做到赋值另一个变量,其值改变,原来的值保持不变

项目中有一个问题是在一个下拉选择的表单,当改变其值时表单下边会出现新的特定的表单需要填写,所以在选择一个值的时候,进行下边的表单填写,但当此时再改变选择的值,下边的表单将变为初始值,当时是在created中把下边动态改变的表单初始的值保存下来,因为created只在渲染dom时运行一次 <el-form ref="form" :model="form" label-width="80px"> <el-form-item labe

Django模板API

基础部分 模板是一个文档或者说一个普通的python字符串由Django模板语言标记而成.一个模板语言可以包括block标签或者是变量. 一个block标签是一个处于模板中的标记,能过完成一些事情. Block的定义看起来有点模糊,这是django开发团队有意为之的.比如一个block标签即可以用来输出内容:也可以被当做一个控制结构(比如if声明或者是for循环)从数据库中抓去数据:或者是通往另一个模板的入口. Block标签由"{%"和"%}"组成. 比如一个模板

55.django模板层(templates)

1.简介 通过使用模板,就可以在URL中直接调用HTML,它还是松耦合的,灵活性强,而且更容易维护 而且可以将变量通过一定的方式嵌入到HTML中,最终渲染到页面,总的来说基于模板完成了数据与用户之间的交互 1.1模板HTML中的变量 用两个大括号括起来的文字(例如  {{ person_name }} )称为  变量 (variable) url部分 urlpatterns = [ path("third/",views.indexs) ] views部分 import datetim

【转】Django 模板语法

转自:https://www.cnblogs.com/love9527/p/9077863.html Django 模板语法 一.模板 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法 模板语法变量:{{ }}在Django模板中遍历复杂数据结构的关键是句点字符 .(其实就是点号)views.py from django.shortcuts import render def index(request): name = "Hello world!&quo

django 模板语言

Django的模板语言的目的是取得力量和易用性之间的平衡,与其他的模板语言相比,django模板语言显得更简单,更专一, django模板系统由模板,变量,过滤器,标签,注释等主要部分组成 模板 一个模板是一个简单的文本文件,它可以生成任何基于文本的格式,html,csv,xml等等 模板里面包含变量,过滤器,标签和注释,下面是一个简单的模板文件 {% extends "base_generic.html" %} {% block title %}{{ section.title }}

谓松散类型就是指当一个变量被申明出来就可以保存任意类型的

量为松散类型,所谓松散类型就是指当一个变量被申明出来就可以保存任意类型的值,就是不像SQL一样申明某个键值为int就只能保存整型数值,申明varchar只能保存字符串.一个变量所保存值的类型也可以改变,这在JavaScript中是完全有效的,只是不推荐.相比较于将变量理 http://www.djob.com/job_8EED14ACE3DE31D0.htmlhttp://www.djob.com/job_59C4A0258B1285F2.htmlhttp://www.djob.com/job_

Django 模板中 变量 过滤器 标签 的使用方法

一.变量 1.变量的形式是:{{variable}}, 当模板引擎碰到变量的时候,引擎使用变量的值代替变量.    2.使用dot(.)能够访问变量的属性    3.当模板引擎碰到dot的时候,查找的顺序是什么样子呢?        a.字典查找,例如:foo["var1"]        b.属性查找,例如:foo.bar        c.方法查找,例如:foo.bar()        d.list-index查找,例如foo[bar] 注意:方法查找比一般的查找要复杂一些 (1