在用django写一个可视化图表echart时,需要从视图函数向模板中的javascript传递生成图表的列表数据,方法如下:
1. view.py
def chinachart(request):
pclist_types=pc_list.objects.filter(site_list_id=1,pcstatustable_id__in=(1,2,3,5),motable__hosttype_list__in=(1,2,3,12)).values('motable__hosttype_list__name').annotate(name=F('motable__hosttype_list__name') ,total=Count('motable__hosttype_list__name')).order_by('motable__hosttype_list__id')
x = [i['name'] for i in pclist_types]
y = [i['total'] for i in pclist_types]
x = json.dumps(x)
y = json.dumps(y)
return render(request,'deviceman/chartjs.html',{'x':x,'y':y})
将列表传递给模板中的javascript变量label, data,
2. chart.html
$(function () {
/* ChartJS
* -------
* Here we will create a few charts using ChartJS
*/
//-------------