Django注销(重定向到主页)..删除cookie?

Ram*_*mya 17 django cookies

注销后我将用户重定向到主页.在此期间,我想删除所有/或特定客户端cookie(我之前已设置).

def logoutuser(request):
  logout(request)
  return redirect('app.home.views.home')
Run Code Online (Sandbox Code Playgroud)

要调用response.delete_cookie('user_location'),没有响应对象.我该怎么做呢?

Smi*_*ris 25

就像jobscry说的那样,logout()会清除会话数据,但看起来你也设置了自己的cookie.

你可以包装auth注销视图,它将返回一个HttpResponse:

def logout_user(request):
     response = logout(request, next_page=reverse('app.home.views.home'))
     response.delete_cookie('user_location')
     return response
Run Code Online (Sandbox Code Playgroud)

或者如果你只是使用logout方法而不是视图,你可以使用你拥有的redirect()方法的返回值[我假设它也返回一个HttpResponse].

def logout_user(request):
     logout(request)
     response = redirect('app.home.views.home')
     response.delete_cookie('user_location')
     return response
Run Code Online (Sandbox Code Playgroud)

  • **NB**_"由于cookie的工作方式,`path`和`domain`应该与你在`set_cookie()中使用的值相同 - 否则cookie可能不会被删除."_ https:// docs.djangoproject.com/en/1.3/ref/request-response/#django.http.HttpResponse.delete_cookie (3认同)