【发布时间】:2019-05-12 23:43:56
【问题描述】:
我正在通过 Django 和 Chart.js 创建图表网页 (在 Django 的 views.py 中)
class ChartView(TemplateView):
template_name = 'graph.html'
def get_context_data(self, **kwargs):
context = super(ChartView, self).get_context_data(**kwargs)
context['labels'] = ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"]
context['datas'] = [12, 19, 3, 5, 2, 3]
return context
在html文件中(模板文件)
<script>
$( document ).ready(function() {
var data = {
labels: {{ labels }},
datasets: [
{
label: "Site Registrations in the Last 30 Days",
fillColor: "rgba(220,220,220,0.2)",
strokeColor: "rgba(220,220,220,1)",
pointColor: "rgba(220,220,220,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(220,220,220,1)",
data: {{ datas }}
}
]
};
var ctx = document.getElementById("myChart").getContext("2d");
var myLineChart = new Chart(ctx).Line(data);
});
</script>
html 页面渲染有错误。 (页面源码是这样的)
<script>
$( document ).ready(function() {
var data = {
labels: [u'Red', u'Blue', u'Yellow', u'Green', u'Purple', u'Orange'],
datasets: [
{
label: "Site Registrations in the Last 30 Days",
fillColor: "rgba(220,220,220,0.2)",
strokeColor: "rgba(220,220,220,1)",
pointColor: "rgba(220,220,220,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(220,220,220,1)",
data: [12, 19, 3, 5, 2, 3]
}
]
};
var ctx = document.getElementById("myChart").getContext("2d");
var myLineChart = new Chart(ctx).Line(data);
});
</script>
很明显,您可以看到 data : {{ datas }} 得到了正确的值。但是,标签:{{标签}}得到了错误的值。我不明白如何解析 Ajax/javascript 中的字符串?请让我知道如何正确地做到这一点。谢谢。
【问题讨论】:
标签: javascript ajax django chart.js