Javascript Django-将int和None值传递给chart.js
我不太擅长javascript,我总是很难理解和使用javascript。我正在处理一个Django项目,在这个项目中,我需要将一个列表传递给Chart.js,以便根据特定的模型显示一个图形 我遇到的问题是试图从Django向javascript传递一个列表,以便显示数据是否可用 假设我有一个来自模型属性的python列表:Javascript Django-将int和None值传递给chart.js,javascript,python,django,chart.js,Javascript,Python,Django,Chart.js,我不太擅长javascript,我总是很难理解和使用javascript。我正在处理一个Django项目,在这个项目中,我需要将一个列表传递给Chart.js,以便根据特定的模型显示一个图形 我遇到的问题是试图从Django向javascript传递一个列表,以便显示数据是否可用 假设我有一个来自模型属性的python列表: [10,20,None,30,40,None,50] 我需要Chart.js来显示数据,这取决于它们是否为每个轴点的值,如果它们为无,则不显示任何内容。当我尝试使用jso
[10,20,None,30,40,None,50]
我需要Chart.js来显示数据,这取决于它们是否为每个轴点的值,如果它们为无,则不显示任何内容。当我尝试使用json.dump()
传递列表,然后在我的模板中使用{{my_list | safe}}
时,它显示如下:
['10','20','None','30','40','None','50']
当它应该是int或None/null值时,所有内容都显示为str。如果我需要chart.js具有后端中的值,该怎么办
希望我的问题足够清楚,如果不让我知道,我会努力更好地解释
提前感谢您的宝贵帮助
Chart.js代码
var ctx = document.getElementById('financial-chart');
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: {{ tab_year|safe }}",
datasets:
[{
label: 'Sales',
data: {{ tab_sales|safe }},
backgroundColor: "#4C81B6",
borderColor: "#4C81B6",
borderWidth: 3,
tension: 0.3,
fill: false
},
{
label: 'Profit',
data: {{ tab_profit|safe }},
backgroundColor: "#DF5558",
borderColor: "#DF5558",
borderWidth: 3,
tension: 0.3,
fill: false
}]
},
options: {
scales: {
y: {
beginAtZero: true
}
}
}
});
已解决
正如elyas提到的,额外的引号是导致问题的原因。None现在被解释为null,因为它们应该是空的。您能发布Chart.js模板代码吗?Chart.js不应该对包含字符串的JSON而不是intsSorry有任何问题,我只是添加了Chart.js代码部分!我无法复制您在数据方面遇到的任何问题。我设法用字符串列表和整数列表生成了相同的图表。但是我确实注意到这一行的标签上有一个拼写错误:{tab|year | safe}},-末尾有一个无关的引号
“
,这使JSON无效,并阻止了图表的加载。您可以尝试var a=JSON.parse({tab year | safe}');。终于看到引号里的问题了!我不知道我以前没见过它。。。谢谢大家的宝贵帮助!