Django模板引擎中变量作为属性值调用
作者:matrix 发布时间:2019-05-16 分类:Python 零零星星
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
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
操作:
{% load val %} #载入过滤器文件val.py
{{ params_data|dict_value:item|dict_value:'title' }}#使用过滤器
如上调用形式等同于:
params_data[item]['title']
参考:
https://www.v2ex.com/t/66772
https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
https://blog.csdn.net/lagelangzhi/article/details/54620061
PEACE~