【问题标题】:My django project isn't logging out, giving weird error [duplicate]我的 django 项目没有注销,出现奇怪的错误 [重复]
【发布时间】:2021-07-04 14:32:00
【问题描述】:

当我尝试在我的 django 项目中注销用户时遇到一个奇怪的错误:

这是我的注销视图:

from django.contrib.auth import logout

def logout_now(request):
    logout(request)

有什么问题?

【问题讨论】:

  • @ubershmekel 是的。谢谢!

标签: python django


【解决方案1】:

视图需要返回一个 HTTP 响应,例如重定向:

from django.contrib.auth import logout
from django.shortcuts import redirect

def logout_now(request):
    logout(request)
    return redirect('name-of-some-view')

如果用户发出请求,那么服务器需要发送一个 HTTP 响应。这本身并不需要重定向。例如,您可以返回带有消息的 HTTP 响应。

请注意,通常具有副作用的操作(例如注销)只能通过 POST 请求完成,而不是 GET 请求。因此,您或许应该使用@require_POST decorator [Django-doc]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    • 2018-05-03
    • 2018-04-17
    • 2011-09-13
    • 1970-01-01
    相关资源
    最近更新 更多