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

时间:2009-08-14 00:08:18

标签: django cookies

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

def logoutuser(request):
  logout(request)
  return redirect('app.home.views.home')

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

3 个答案:

答案 0 :(得分:25)

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

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

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

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

def logout_user(request):
     logout(request)
     response = redirect('app.home.views.home')
     response.delete_cookie('user_location')
     return response

答案 1 :(得分:1)

根据http://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.logout

  

在Django 1.0中更改:调用logout()现在可以清除会话数据。

答案 2 :(得分:0)

希望这会有所帮助: 校准“ / clear-cookies”时删除cookie

location.href = '/clear-cookies';

1。在views.py中定义方法:

def clear_cookies(request):
response = HttpResponseRedirect('/')
response.delete_cookie('_gat', domain='example.com')
response.delete_cookie('_ga', domain='example.com')
response.delete_cookie('_gid', domain='example.com')
return response
  1. 将路径和方法添加到您的urls.py

    url(r'^ clear-cookies',clear_cookies)