【发布时间】:2021-07-04 14:32:00
【问题描述】:
当我尝试在我的 django 项目中注销用户时遇到一个奇怪的错误:
这是我的注销视图:
from django.contrib.auth import logout
def logout_now(request):
logout(request)
有什么问题?
【问题讨论】:
-
@ubershmekel 是的。谢谢!
当我尝试在我的 django 项目中注销用户时遇到一个奇怪的错误:
这是我的注销视图:
from django.contrib.auth import logout
def logout_now(request):
logout(request)
有什么问题?
【问题讨论】:
视图需要返回一个 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]。
【讨论】: