【发布时间】:2021-12-10 01:33:44
【问题描述】:
每个人。我这里有views.py,我想计算不同状态的任务并输出到chart.js 饼图。我尝试了很多方法,但没有一个有效。我有一个错误,说我的视图 def 没有返回 HttpResponse,谁能告诉我它是什么,好吗?我在 HTML 中使用了模板标签。
谢谢。
views.py
def visualisation(request, project_id):
project = Project.objects.get(id=project_id)
counts_data = Todo.objects.annotate(
to_do_count = Count('id', filter=Q(status='to_do')),
in_progress_count = Count('id', filter=Q(status='in_progress')),
done_count = Count('id', filter=Q(status='done'))
).order_by('-to_do_count')
context = {'counts_data', counts_data}
return render(request, 'todo_lists/progress.html', context)
html
data: {
labels: [1,2,3],
datasets: [{
label: '# of Votes',
data:[{% for todo in counts_data %} {{ todo }}, {% endfor %}],,
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)'
],
borderColor: [
'rgba(255, 99, 132, 1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)'
],
borderWidth: 1
}]
},
【问题讨论】:
-
您的视图看起来不错,因为错误消息是您拥有模板并已导入渲染。您是否添加了 print 语句以确保您实际上正在调用该函数? (与名为
visualizations的剩余函数相反?我以前犯过这个错误,但从你给出的代码中很难判断。 -
@sintribu 是的,你提醒了我,原来我有一个同名的函数,试图对我的代码做一些实验但忘记删除它。如果你把它作为一个答案我会接受,干杯兄弟
-
谢谢 我很感激这个提议,但这并不是什么大不了的事。很高兴为我付出我的痛苦哈哈。干杯!
标签: javascript python django chart.js