【问题标题】:ValueError: The view users.views.logout_user didn't return an HttpResponse object. It returned None insteadValueError:视图 users.views.logout_user 没有返回 HttpResponse 对象。它返回 None 而不是
【发布时间】:2021-03-12 02:46:20
【问题描述】:

我正在 django 中构建一个博客应用程序。但是,当我编写一个用于注销用户的函数时,我得到了这个回溯错误:

Internal Server Error: /users/logout/
Traceback (most recent call last):
  File "C:\Users\Dell\Desktop\Django\blog\venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\Dell\Desktop\Django\blog\venv\lib\site-packages\django\core\handlers\base.py", line 186, in _get_response
    self.check_response(response, callback)
  File "C:\Users\Dell\Desktop\Django\blog\venv\lib\site-packages\django\core\handlers\base.py", line 309, in check_response
    "instead." % name
ValueError: The view users.views.logout_user didn't return an HttpResponse object. It returned None instead.

我的logout_user 视图函数只有两行,所以我似乎无法理解错误。这是我的视图函数:

@login_required
def logout_user(request):
    logout(request)

谁能帮帮我?

【问题讨论】:

  • 您应该传递任何响应或重定向页面
  • 您的意思是注销后重定向吗?因为我已经在我的设置文件中指定了 LOGOUT_REDIRECT_URL
  • 查看具体错误。 The view users.views.logout_user didn't return an HttpResponse object. It returned None instead.。返回任何响应然后重试
  • 是的,它有效。感谢您的帮助!

标签: python django


【解决方案1】:

因为视图必须返回render 响应。你应该重定向HttpResponseRedirect()

return HttpResponseRedirect()

要注销通过django.contrib.auth.login() 登录的用户,请在您的视图中使用django.contrib.auth.logout()。它接受一个HttpRequest 对象并且没有返回值。

from django.contrib.auth import logout

def logout_view(request):
    logout(request)
    # Redirect to a success page.

【讨论】:

    猜你喜欢
    • 2020-12-03
    • 1970-01-01
    • 2019-06-12
    • 2020-08-09
    • 2021-12-10
    • 2020-11-01
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    相关资源
    最近更新 更多