回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我在django网站上有一个chartsJS图表。我使用上下文变量通过views.py将值从main.py文件传递到showdata.html,以填充图形。过程如下:</p>
<ul>
<li><p><strong>Main.py</strong></p>
<pre><code> myList = [T1_sum, T2_sum, T3_sum, T4_sum, T5_sum, T6_sum, T7_sum, T8_sum, T9_sum, T10_sum]
mylables = ["T1", "T2", "T3", "T4", "T5", "T6", "T7", "T8", "T9", "T10"]
sortedlist, sortedlables = zip(*sorted(zip(myList, mylables), reverse=True))
sortedlist = list(sortedlist)
sortedlables = list(sortedlables)
</code></pre>
</li>
</ul>
<p><strong>视图.py</strong></p>
<pre><code>def showdata(request):
import json
numbers_in_sModel = sModel.objects.all()
numbers_in_sortedList = MyModel.objects.all()
labels_in_sortedList = myModelSortedLabels.objects.all()
if request.session.get('stats',False):
js_object = json.loads(request.session.get('stats'))
return render(request, "showdata.html", context={
'numbers_in_sModel':numbers_in_sModel,
'numbers_in_sortedList':numbers_in_sortedList,
'labels_in_sortedList':labels_in_sortedList
})
</code></pre>
<p><strong>Showdata.html</strong></p>
<pre><code>var myChart = new Chart(ctx, {
type: 'horizontalBar',
data: {
labels: [
{% for number in numbers_in_sortedList %}
{% for value in number.jsonM %}
{{ value }},
{% endfor %}
{% endfor %}
],
datasets: [{
axis: 'y',
label: false,
data: [
{% for number in numbers_in_sortedList %}
{% for value in number.jsonM %}
{{ value }},
{% endfor %}
{% endfor %}
],
backgroundColor: ['#36CAAB', '#36CAAB', '#36CAAB', '#36CAAB', '#36CAAB','#36CAAB', '#36CAAB', '#36CAAB', '#36CAAB', '#36CAAB'],
borderWidth: 1
}]
},
</code></pre>
<p>好的,上面的代码使用上下文变量填充chartsjs图形。所产生的是一个图表,如下图所示。这个图表的标签是数字。如图所示。然而,我试图做的是用排序标签列表替换标签。
现在,如果我将showdata.html页面上的数据放在诸如etc之类的标记中,那么下面的代码将在该页面上显示该数据。因此,我知道正在传递上下文变量。但是,当我将以下代码放在chartsjs的<code>labels</code>部分时,它不会在图中显示标签值</p>
<pre><code>{% for number in labels_in_sortedList %}
{% for value in number.jsonSortedLabels %}
{{ value }},
{% endfor %}
{% endfor %}
</code></pre>
<p>有趣的是,当我查看页面时,我看到标签部分中的值,除了第一个标签条目上有一个错误外,该部分中的值表示:</p>
<p><code>Uncaught ReferenceError: T9 is not defined</code></p>
<p><a href="https://i.stack.imgur.com/iuZMl.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/iuZMl.png" alt="enter image description here"/></a></p>