Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Django模板引擎中变量作为属性值调用

Django模板引擎中变量作为属性值调用

作者头像
HHTjim 部落格
发布于 2022-09-26 02:42:22
发布于 2022-09-26 02:42:22
1.8K00
代码可运行
举报
文章被收录于专栏:HHTjim'S 部落格HHTjim'S 部落格
运行总次数:0
代码可运行

Django模板引擎中变量作为属性值调用

作者:matrix 被围观: 2,268 次 发布时间:2019-05-16 分类:Python 零零星星 | 4 条评论 »

这是一个创建于 1203 天前的主题,其中的信息可能已经有所发展或是发生改变。

Django默认模板中如果想要调用变量的属性值只能点.字符,也就是value.arg,等同于value["arg"]的调用,不能使用方括号的语法操作,这样的就会导致无法取value[arg]这种变量属性值。

解决办法

1.更换模版引擎。

2.使用自定义template filters模版过滤器

使用模版过滤器setup

1.创建templatetags目录

在项目的模块目录下创建templatetags文件夹(和路由配置urls.py同级)

目录下需要创建__init__.py空白文件

2.创建过滤器py文件

自定义过滤器:dict_value

val.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from django import template
register = template.Library()

@register.filter(name='dict_value')
def dict_value(value, arg):
    """
    模版变量过滤器 用于调用变量属性的值
    如:$value[$arg]
    :param value:
    :param arg:
    :return:
    """
    return value[arg]
3.模版中使用

模版中需要load操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{% load val %} #载入过滤器文件val.py
{{ params_data|dict_value:item|dict_value:'title' }}#使用过滤器

如上调用形式等同于:

params_data[item]['title']

参考:

https://www.v2ex.com/t/66772

https://docs.[Django](https://www.hhtjim.com/tag/django)project.com/en/dev/howto/custom-template-tags/

https://blog.csdn.net/lagelangzhi/article/details/54620061

PEACE~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Django之templatetags自定义标签和过滤器的使用
2、创建任意 .py 文件,如:myTag.py 3、myTag.py文件: from django import template from django.utils.safestring import mark_safe register = template.Library(); # register 不能改变
菲宇
2022/05/06
1.7K0
python终极篇 ---django
                                            模板系统                                               
py3study
2020/01/19
8130
python终极篇 ---django
Django的模板系统
  {{ }} 和 {% %}  (变量相关用{{ }}  逻辑相关用{% %})
py3study
2020/01/21
1.7K0
Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)
前言:当我们想在页面上给客户端返回一个当前时间,一些初学者可能会很自然的想到用占位符,字符串拼接来达到我们想要的效果,但是这样做会有一个问题,HTML被直接硬编码在 Python代码之中。 1 2 3 4 def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse
用户1214487
2018/01/24
2.6K0
04.Django基础四之模板系统
  当模版引擎遇到一个变量,它将计算这个变量,然后用结果替换掉它本身。 变量的命名包括任何字母数字以及下划线 ("_")的组合。 变量名称中不能有空格或标点符号。
changxin7
2019/09/29
2.6K0
Django自定义模板标签和过滤器
在某个APP所在目录下新建包templatetags,然后在其中创建存储标签或者过滤器的的模块,名称随意,例如myfilters.py。
py3study
2020/01/16
7570
Pycharm开发Django项目自定义模版过滤器
虽然DTL给我们内置了许多好用的过滤器。但是有些时候还是不能满足我们的需求。因此Django给我们提供了一个接口,可以让我们自定义过滤器,实现自己的需求。
用户2200417
2021/10/30
2770
Django 2.1.7 模板语言 - 变量、标签、过滤器、自定义过滤器、模板注释
Django 2.1.7 创建应用模板 Django 2.1.7 配置公共静态文件、公共模板路径
Devops海洋的渔夫
2019/07/01
8590
Django 2.1.7 模板语言 - 变量、标签、过滤器、自定义过滤器、模板注释
Web框架之Django二
​ 视图是一个可调用的对象,它接收一个请求然后返回一个响应,这个可调用对象可以不只是函数,Django还提供一些可以用作视图的类,叫做类视图。
张哥编程
2024/12/07
1000
Web框架之Django二
Django 模板
在html文件中,default 为变量提供一个默认值,如果views传的变量布尔值为false,则使用指定的默认值,如果为true,就使用views传的变量值;
HammerZe
2022/03/25
4.9K0
Django 模板
django 1.8 自定义模板标签(simple_tag)和过滤器(filter)
为了解决应用中展示逻辑的需求,Django的模板语言提供了各式各样的内建标签以及过滤器。然而,你或许会发现模板内建的这些工具集合不一定能全部满足你的功能需要。在Python中,你可以通过自定义标签或过滤器的方式扩展模板引擎的功能,并使用{{ load }}标签在你的模板中进行调用。
卓越笔记
2023/02/18
1.9K0
Django基础篇-模板加载静态文件
在 settings.py 文件中添加 STATICFILES_DIRS,设置静态文件目录路径。
小团子
2019/07/18
1.3K0
Django基础篇-模板加载静态文件
django模板系统(上)
{{  }} 表示变量,在模板渲染的时候替换成值,{%  %} 表示逻辑相关的操作。
py3study
2020/01/19
8950
Django模板语言与视图(view)
  的命名包括任何字母数字以及下划线 ("_")的组合(不提倡数字开头)。 变量名称中
py3study
2020/01/19
3.5K0
Django模板语言与视图(view)
Django学习笔记之Django模版系统
官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}。 变量 {{ 变量名 }} 变量名由字母数字和下划线组成。 点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值。 几个例子: view中代码: def template_test(request): l = [11, 22, 33] d = {"name": "alex"} class Person(object): def __init__(
Jetpropelledsnake21
2018/07/04
9830
模板语言
常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}。 变量 {{ 变量名 }} 变量名由字母数字和下划线组成。 点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值。 几个例子: view中代码: def template_test(request): l = [11, 22, 33] d = {"name": "alex"} class Person(object): def __init__(self,
人生不如戏
2018/04/12
1.2K0
python测试开发django-70.自定义过滤器filter
django的模板有很多内置的过滤器,可以满足一些常见的需求,如果有些需求内置过滤器无法满足,那么我们需要自己写一些过滤器了。
上海-悠悠
2019/11/14
4380
Django 中 自定义过滤器的创建和使用,以时间过滤器为例
模版过滤器必须要放在 app中,并且这个 app必须要在 INSTALLED_APPS中进行安装。然后再在这个 app下面创建一个 Python包叫做 templatetags。再在这个包下面创建一个 python文件。 本项目中的python文件名字为print_timestamp.py
一写代码就开心
2020/12/01
2K0
Django  中  自定义过滤器的创建和使用,以时间过滤器为例
django之templatetags的使用
2、创建任意 .py 文件,如:myTag.py 3、myTag.py文件: from django import template from django.utils.safestring import mark_safe register = template.Library(); # register 不能改变
菲宇
2019/06/13
1.2K0
Django模版函数用法
IT不难
2023/11/17
1170
Django模版函数用法
相关推荐
Django之templatetags自定义标签和过滤器的使用
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验