前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django模板引擎中变量作为属性值调用

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

作者头像
HHTjim 部落格
发布2022-09-26 10:42:22
1.6K0
发布2022-09-26 10:42:22
举报
文章被收录于专栏:HHTjim'S 部落格

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
复制
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
复制
{% 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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Django模板引擎中变量作为属性值调用
    • 解决办法
      • 使用模版过滤器setup
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档