使用JavaScript獲取Django模板指定鍵值數(shù)據(jù)
Django中利用js來(lái)操作數(shù)據(jù)的常規(guī)操作一般為點(diǎn)(.)操作符來(lái)獲取字典或列表的數(shù)據(jù),一般如{{data.0}},{{data.arg}}
但有時(shí)如果數(shù)據(jù)是嵌套類(lèi)型的數(shù)據(jù)時(shí),直接獲取某個(gè)值就變得困難了,比如下面的格式要獲取
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}}
這時(shí)候如果改變數(shù)據(jù)格式為列表中的無(wú)嵌套字典格式比較麻煩,可以自定義過(guò)濾器來(lái)獲取數(shù)據(jù),
from django.template.defaulttags import register@register.filterdef getArgQxlValue(dictionary,arg): return dictionary[arg][’qxl’] @register.filterdef getArgKkxValue(dictionary,arg): return dictionary[arg][’kkx’] @register.filterdef getArgName(dictionary,arg): return dictionary[arg][’name’]
在模板中就可以以這樣寫(xiě)
<!-- the second important page of the project-->{% load staticfiles %}<!DOCTYPE html><html><head> <meta charset='utf-8'> <title>超標(biāo)信息</title> <script src='http://m.cgvv.com.cn/bcjs/{% 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}} 超出閥值 閥值:{{guestSetArgs|getArgQxlValue:j}} 檢測(cè)值:{{warningdata|getArgQxlValue:j}}<br>' document.write(setArgStr); } {% endfor %} {% endfor %} </script></body></html>
形如{{warningdata|getArgQxlValue:j}},就可以獲取到里面的值了
稍做美化
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 簡(jiǎn)述JAVA同步、異步、阻塞和非阻塞之間的區(qū)別2. IntelliJ IDEA設(shè)置默認(rèn)瀏覽器的方法3. 使用Python3 poplib模塊刪除服務(wù)器多天前的郵件實(shí)現(xiàn)代碼4. Python TestSuite生成測(cè)試報(bào)告過(guò)程解析5. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法6. SpringBoot集成mqtt的多模塊項(xiàng)目配置詳解7. 深入了解JAVA 軟引用8. 解決AJAX返回狀態(tài)200沒(méi)有調(diào)用success的問(wèn)題9. 詳解JAVA 強(qiáng)引用10. IntelliJ IDEA設(shè)置背景圖片的方法步驟
