Javascript 如何将Django模板变量发送到Morris.Line数据变量?
我正试图用莫里斯·莱恩画一张图表。我必须画几个,所以我试图用for循环动态地制作一个图表 Template.html-正文 我试过了,我的观点没有错误。以防我加上它 我得到Javascript 如何将Django模板变量发送到Morris.Line数据变量?,javascript,html,django,django-templates,Javascript,Html,Django,Django Templates,我正试图用莫里斯·莱恩画一张图表。我必须画几个,所以我试图用for循环动态地制作一个图表 Template.html-正文 我试过了,我的观点没有错误。以防我加上它 我得到未捕获类型错误:无法读取未定义的属性“匹配” “new Morris.Line”中出现错误。如何解决此问题?您必须返回json obj,而不是字符串。您可以尝试下面的代码行,并将数据\u列表作为数据提供给图表 myVar = document.getElementById("myVar").value; v
未捕获类型错误:无法读取未定义的属性“匹配”
“new Morris.Line”中出现错误。如何解决此问题?您必须返回json obj,而不是字符串。您可以尝试下面的代码行,并将
数据\u列表
作为数据提供给图表
myVar = document.getElementById("myVar").value;
var data_list = eval(myVar);
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var myVar = document.getElementById("myVar").value;
new Morris.Line({
// ID of the element in which to draw the chart.
element: 'myfirstchart',
// Chart data records -- each entry in this array corresponds to a point on
// the chart.
data: myVar,
// The name of the data record attribute that contains x-values.
xkey: 'day',
// A list of names of data record attributes that contain y-values.
ykeys: ['value'],
// Labels for the ykeys -- will be displayed when you hover over the
// chart.
labels: ['Value']
})
});
</script>
def data_chart(request):
markets = Markets.objects.all().filter(~Q(spider=5))
cutoff = datetime.date.today() - datetime.timedelta(days=7)
datas = []
for market in markets:
raw_data = (
Products.objects.filter(created_dates__gte=cutoff)
.values_list("created_dates__date")
.filter(market=market.id)
.annotate(count=Count("id"))
.values_list("created_dates__date", "count")
)
data = [{"day": str(day), "value": value} for (day, value) in raw_data]
market_data = {"id":market.id,"data":data}
datas.append(market_data)
return render(request, "chartpage.html", {"datas": datas})
myVar = document.getElementById("myVar").value;
var data_list = eval(myVar);