注销后我将用户重定向到主页。在此期间,我想删除所有/或特定客户端cookie(我之前已设置)。
def logoutuser(request):
logout(request)
return redirect('app.home.views.home')
要调用response.delete_cookie('user_location'),没有响应对象。我该怎么做?
答案 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
将路径和方法添加到您的urls.py
url(r'^ clear-cookies',clear_cookies)