【问题标题】:Django ValueError The view todo_lists.views.visualisation didn't return an HttpResponse object. It returned None insteadDjango ValueError 视图 todo_lists.views.visualisation 没有返回 HttpResponse 对象。它返回 None 而不是
【发布时间】: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


【解决方案1】:

有一个def函数同名且没有return语句,删除它,问题就解决了。 @sintribu 欢呼

【讨论】:

    猜你喜欢
    • 2020-08-09
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 2017-01-25
    • 2018-09-14
    • 1970-01-01
    相关资源
    最近更新 更多