我在多个字典变量中都有一个数据集,我想将其作为模板传递
servera = {'svr': ServerA, 'tc': 10, 'bs': 100, 'bf': 0, 'te': 0, 'per': '0.00'}
serverb = {'svr': ServerB: 'tc': 20, 'bs': 20, 'bf': 0, 'te': 0, 'per': '0.00'}
。 .. 。 等等大约14个这样的
我想按如下所示将它们传递给模板
def function(request)
#process data using code
return render(request,'output.html'{servera:servera,serverb:serverb,serverc:serverc,.......}
虽然可行,但在添加字典变量时会增加工作量,需要将其添加到return语句中。
我该如何实现
somevariable = <all dictionary variabled clubbed>
def function(request)
#process data using code
return render(request,'output.html'{somevariabe:somevariable}
然后如何在模板中访问
类似
{% for name in somevariable.list.all %}
{% for servername in name.list.all %}
{{ servername.tc }}
{% endfor %}
{% endfor %}
任何帮助将不胜感激
编辑:
以下是我正在尝试的模板文件
{% for k in server_stats.all %}
<tr>
<td><p class="small">{{ forloop.counter }}</p></td>
<td><p class="small">{{ k.svr }}</p></td>
<td><p class="small">{{ k.te }}</p></td>
<td><p class="small">{{ k.bs }}</p></td>
<td><p class="small">{{ k.bf }}</p></td>
</tr>
{% endfor %}
“我的视图”文件片段
.
.
..
elif request.method =='POST' and 'weekly_report' in request.POST :
generate_backup_report("Weekly")
report_type ="Weekly"
rc= {'report_type': report_type}
for m in mserver_list:
answer = (getbackup_stats(m))
print(answer)
server_stats.append(answer)
print('Getting Stats for ',m)
print('These are Server Stats',server_stats)
return render(request,'viewreport.html',{'mserver_list':mserver_list,'server_stats':server_stats,'tstats':tstats})
Debug Toolbaar显示变量已成功转移到模板,但是无法从中获取值。
'server_stats': [{'bf': 0,
'bs': 0,
'per': '0.00',
'svr': <masterserver: ServerA>,
'tc': 0,
'te': 0},
{'bf': 1,
'bs': 4,
'per': '-100.00',
'svr': <masterserver: Challenger>,
'tc': 5,
'te': 5},
{'bf': 1,
'bs': 18,
'per': '-100.00',
'svr': <masterserver: Serverb>,
'tc': 21,
'te': 19},
{'bf': 0,
'bs': 0,
'per': '0.00',
'svr': <masterserver: ServerC>,
'tc': 0,
'te': 0},
{'bf': 12,
'bs': 0,
'per': '-1200.00',
'svr': <masterserver: ServerD>,
'tc': 21,
'te': 12},
{'bf': 1,
'bs': 29,
'per': '-100.00',
'svr': <masterserver: ServerE>,
'tc': 31,
'te': 30},
{'bf': 30,
'bs': 0,
'per': '-3000.00',
'svr': <masterserver: ServerF>,
'tc': 32,
'te': 30},
{'bf': 0,
'bs': 0,
'per': '0.00',
'svr': <masterserver: ServerG>,
'tc': 0,
'te': 0},
{'bf': 1,
'bs': 27,
'per': '-100.00',
],
答案 0 :(得分:1)
列出服务器词典列表,并将其发送到模板,然后在模板中进行迭代。就像上下文中的server_lsit = [servera, serverb, .....]
一样,将它们发送为''outpt.html, {'servers': server_list}
您可以在html模板中进行迭代,
{% for serv in servers %} {{ serv.svr }}{{ serv.tc }} ... {% endfor %}
每次循环运行时,它都在每台服务器上,您可以在其中访问数据。这只是一种方法,也许还有更好的方法。