Django ValueError 视图 todo_lists.views.visualisation 没有返回 HttpResponse 对象。它返回 None 而不是
Posted
技术标签:
【中文标题】Django ValueError 视图 todo_lists.views.visualisation 没有返回 HttpResponse 对象。它返回 None 而不是【英文标题】:Django ValueError The view todo_lists.views.visualisation didn't return an HttpResponse object. It returned None instead 【发布时间】: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 是的,你提醒了我,原来我有一个同名的函数,试图对我的代码做一些实验但忘记删除它。如果你把它作为一个答案我会接受,干杯兄弟
谢谢 我很感激这个提议,但这并不是什么大不了的事。很高兴为我付出我的痛苦哈哈。干杯!
【参考方案1】:
有一个def函数同名且没有return语句,删除它,问题就解决了。 @sintribu 欢呼
【讨论】:
以上是关于Django ValueError 视图 todo_lists.views.visualisation 没有返回 HttpResponse 对象。它返回 None 而不是的主要内容,如果未能解决你的问题,请参考以下文章
python django ajax:ValueError:视图没有返回 HttpResponse 对象。它返回 None 而不是
ValueError 精确查找的 QuerySet 值必须限制为在 django 视图上使用切片的一个结果
Django ValueError:无法查询“用户”:必须是“个人资料”实例
Django ValueError: invalid literal for int() with base 10: 'xxx'解决办法