django - djanog模板循环中的分组条形数据集
问题描述
我想使用 django 从图表 js 中绘制一个分组条,目前工作正常。其实我是手动做的。但我需要通过for循环(数据,标签,背景颜色)绘制一个分组条。
实际的
label_list=[2019,2020]
color_list=['#e75e72','#3396ff']
data_list=[[282,314,106,502,107,111],[86,350,411,340,635,809]]
datasets: [
{
label: {{label_list.0|safe}},
backgroundColor: '{{color_list.0|safe}}',
data:{{data_list.0|safe}} ,
},
{
label: {{label_list.1|safe}},
backgroundColor: '{{color_list.1|safe}}',
data: {{data_list.1|safe}} ,
},
]
我真的不知道动态地制作它。
我需要类似的东西
{% for x in label_list %}
{{
label:label_list.forloop.counter[x],
background-color:color_list.forloop.counter[x],
data:data_list.forloop.counter[x]
}}//forloop.counter0,forloop.counter1
{% endfor %}
提前谢谢。
解决方案
与其在模板中处理值,不如在视图中构建数据集并将其作为上下文发送,如下所示:
datasets = list()
for label, color, data in zip(label_list, color_list, data_list):
value_dict = {
'label': label,
'backgroundColor' : color,
'data': data
}
datasets.append(value_dict)
context = {'datasets': json.dumps(datasets)} # use 'import json' on top of the file
return render('template.html', context)
然后直接在你的模板中使用它,如下所示:
<script>
var dataset = {{ datasets }}
// rest of the code
</script>
推荐阅读
- sql - 如何使用sqlpackage.exe生成重命名表的脚本?
- javascript - Node.js:使用数学方法而不参考模块
- php - 如何在没有 Google 帐户的情况下通过权限 ID 打开或生成 Google 文档的共享链接?
- c# - 当返回类型为 IHttpActionResult 时,Web API 2 返回不带引号的简单字符串
- json - 初始化地图后如何将坐标重置为 Ajax 调用?
- ios - Xcode 存档失败,错误退出代码为 1
- javascript - 更改 HTML 选择项的背景在 Firefox 中不起作用
- reactjs - 如何格式化 Formik 中 onBlur 事件的输入值?
- excel - 在excel数据透视表中使用列标签作为格式化条件
- java - 静态内部类与非静态外部类