django - 如何使用自定义 django 过滤器传递字符串参数?
问题描述
我在 django 中做了一个新的过滤器。它的名字是 iarray,这是它的定义:
from django import template
from django.template.defaultfilters import stringfilter
register = template.Library()
@register.filter(is_safe=True)
@stringfilter
def iarray(value, arg):
"""
This return the value of dict in arg index:: value[arg]
:param value:
:return:
"""
value = eval(value)
return value[str(arg)]
理论上,这个函数应该返回一个给定位置的字典的值。
问题是模板何时呈现。例如:
"text": "<h1>Holguín</h1><br /><p>{{ provincias|iarray:'Holguín'|safe }}</p>"...
上面的代码抛出以下异常:
模板渲染期间出错
In template /srv/www/eicma/templates/eicma/index7.html, error at line 527 (the above line).
问题在于生产模式,在开发模式下问题不存在。这是一个更完整的代码示例:
mapData.paths = [
{
"enable": true,
"name": "Holguín",
"abbreviation": "HO",
"textX": 0,
"textY": 0,
"color": "#59798e",
"hoverColor": "#E32F02",
"selectedColor": "#feb41c",
"url": "#",
"text": "<h1>Holguín</h1><br /><p>{{ provincias|iarray:'Holguín'|safe }}</p>",
"path": "M610.5,166.9 L610.8,167.7 L606.2,167.1 L604.5,165.7 L604.4,164.5 L607.6,163.8 L609.0,164.4 Z M555.8,134.0 L558.3,135.8 .... Z"
},
所以,我的问题如下:
- 有事吗?当然,我加载了过滤器并添加到 INSTALLED_APPS。
解决方案
推荐阅读
- java - 带有客户端证书的 Websocket
- django - 如何使用for循环在django模板(index.html)中解析字典列表的元素
- pdf - 通过 Acrobat Pro 嵌入 PDF 搜索索引的命令行用法
- reactjs - React Router/Navigation 每次都在刷新我的页面
- java - 如何为固定字符构建正则表达式?
- spring-boot - java.lang.IllegalArgumentException:API 令牌不能为空或为空 OKTA 集成
- performance - 带有标签的黄瓜测试很慢
- angular - angular-oauth2-oidc,如何检测我是否在其他地方登录?
- python - 用一行的条件替换 Pandas Dataframe 中的值
- tensorflow - 如何在 TensorFlow 中连续恢复多个会话