2009-08-14 88 views
14

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

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

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

回答

22

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

你可以换身份验证注销视图,它会返回一个HttpResponse:

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

或者,如果你仅仅使用相对于视图的注销方法,你可以使用返回值的重定向( )你有[我也假设也会返回一个HttpResponse]的方法。

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

谢谢你的建议工作..! – Ramya 2009-08-14 13:15:01

+3

** NB ** _“由于cookie的工作方式,'path'和'domain'应该与'set_cookie()'中使用的值相同,否则cookie可能不会被删除。”_ https:/ /docs.djangoproject.com/en/1.3/ref/request-response/#django.http.HttpResponse.delete_cookie – 2012-09-01 05:06:55

+0

谢谢@MattBall。任何语言,框架,库等都必须是这种情况。 – muffs 2014-06-19 23:02:11