Django中利用js来操作数据的常规操作一般为点(.)操作符来获取字典或列表的数据,一般如{{data.0}},{{data.arg}}

但有时如果数据是嵌套类型的数据时,直接获取某个值就变得困难了,比如下面的格式要获取

correct中qxl的值
startArgsSet={"correct":{"qxl":0,"kkx":0},"reliable":{"qxl":0,"kkx":0},"security":{"qxl":0,"kkx":0},"understand":{"qxl":0,"kkx":0},"entropy":{"qxl":0,"kkx":0},
"mature":{"qxl":0,"kkx":0},"active":{"qxl":0,"kkx":0},"service":{"qxl":0,"kkx":0},"file":{"qxl":0,"kkx":0},
"tech":{"qxl":0,"kkx":0},"property":{"qxl":0,"kkx":0},"organize":{"qxl":0,"kkx":0},"develop":{"qxl":0,"kkx":0},
"source":{"qxl":0,"kkx":0},"update":{"qxl":0,"kkx":0},"fix":{"qxl":0,"kkx":0},
"quality":{"qxl":0,"kkx":0},"meanNum":{"qxl":0,"kkx":0},"variance":{"qxl":0,"kkx":0}
}

这时候如果改变数据格式为列表中的无嵌套字典格式比较麻烦,可以自定义过滤器来获取数据,

from django.template.defaulttags import register

@register.filter
def getArgQxlValue(dictionary,arg):
return dictionary[arg]['qxl'] @register.filter
def getArgKkxValue(dictionary,arg):
return dictionary[arg]['kkx'] @register.filter
def getArgName(dictionary,arg):
return dictionary[arg]['name']

在模板中就可以以这样写

<!-- the second important page of the project-->
{% load staticfiles %} <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>超标信息</title> <script src="{% static 'js/a-mynewjs.js' %}"></script> </head> <body> {{ guestSetArgs|safe }}<br><br><br> {{ warningdata|safe }}<br><br> <script>
{% for i in guestSetArgs %}
{% for j in warningdata %}
if("{{i}}"=="{{j}}")
{
if(Number({{warningdata|getArgQxlValue:j}})>Number({{guestSetArgs|getArgQxlValue:i}}))
var setArgStr="{{warningdata|getArgName:i}}&nbsp;超出阀值&nbsp;&nbsp;阀值:{{guestSetArgs|getArgQxlValue:j}}&nbsp;&nbsp;检测值:{{warningdata|getArgQxlValue:j}}<br>"
document.write(setArgStr);
} {% endfor %}
{% endfor %} </script>
</body>
</html>

形如{{warningdata|getArgQxlValue:j}},就可以获取到里面的值了

稍做美化

参考自https://docs.djangoproject.com/en/2.2/howto/custom-template-tags/

最新文章

  1. string.empty , &quot;&quot; , null 以及性能的比较
  2. PV IP UV的概念介绍
  3. CXF和Axis的比较【转】
  4. LeetCode-Word LadderII
  5. CString与char *互转总结
  6. 在多线程环境中使用Jedis
  7. SQL Server2012 创建定时作业——图文并茂,教你轻松快速创建
  8. golang 并发之协程及通道
  9. final类与final方法
  10. ImageMagick
  11. 102 - kube-scheduler源码分析 - cobra-寻找scheduler组件启动函数
  12. 浏览器与android移动端视频互播技术实现
  13. javascript学习笔记_1
  14. Oracle SQL 开发误区探索
  15. linux系统基础入门
  16. vue 异步请求
  17. M斐波那契数列(矩阵快速幂+费马小定理)
  18. (转)sysbench部署与参数详解
  19. 安装 Xamarin for Visual Studio
  20. 「UOJ351」新年的叶子

热门文章

  1. navicat 12激活
  2. Python【day 18】面向对象-类和类的关系
  3. Oracle数据库之第一篇
  4. latex初步入门:springer llncs
  5. JS If...Else
  6. python列表转换为字符串
  7. [PHP] cli环境下php设置进程名字
  8. (转)玩转Koa -- koa-bodyparser原理解析
  9. 暑期班--JAVA无敌课程---第一天-Day01-----Java基础
  10. python笔记:配置虚拟开发环境