ValueError 视图没有 return HttpResponse 对象。它 return 改为 None

ValueError the view didn't return an HttpResponse object. It returned None instead

我创建了一个装饰器来在我查看之前检查身份验证。我打算把这个装饰器放在所有视图上。我确定我的代码正在执行。但是我收到了上述错误。

这是我的装饰器: '''

def check_the_permissions(func):
   def wrap(request):
      soeid = request.GET.get('soeid')
      if not soeid:
          return HttpResponse("Please ..")
      is_allowed = getEEMSResponse(soeid, URL)
      if not is_allowed:
          return HttpResponse("You do not have ...")
      func(request)
   return wrap

@check_the_permissions
def LimitVsUsageTrend(request):
   scatterLimitVsUsage = plot(myfigure, output_type='div')
   return render(request, 'LimitVsUsageTrend.html", {'myplot': scatterLimitVsUsage})

'''

这是我的堆栈跟踪 追溯(最近一次通话): 内部响应中的文件“C:\Users\opt\exeception.py”第 34 行 = get_response(请求) _get_response 中的文件“C:\Users\opt\base.py”第 126 行“returned None 相反。” % (回调.模块, view_name) ValueError: 视图 plots.views.wrap 没有 return HttpResponse 对象。它 return 改为 None。

您忘记了 return func(request) 调用的结果。此外,我还建议传递 *args**kwargs 以使装饰器也适用于接受额外参数的函数:

def check_the_permissions(func):
   def wrap(request<b>, *args, **kwargs</b>):
      soeid = request.GET.get('soeid')
      if not soeid:
          return HttpResponse('Please ..')
      is_allowed = getEEMSResponse(soeid, URL)
      if not is_allowed:
          return HttpResponse('You do not have ...')
      <b>return</b> func(request<b>, *args, **kwargs</b>)
   return wrap