tags:

views:

1981

answers:

2

I redirect the user to the home page after logout. In between I would like to delete all/or specific client cookies (I have previously set).

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

To call response.delete_cookie('user_location'), there is no response object. How do I do this?

+1  A: 

according to http://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.logout

Changed in Django 1.0: Calling logout() now cleans session data.

jobscry
Seems to delete the session data, but not client cookie. I am using Django 1.1
Ramya
+3  A: 

Like jobscry said, logout() cleans session data, but it looks like you have set your own cookies too.

You could wrap auth logout view, which will return an HttpResponse:

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

Or if you're just using the logout method as opposed to the view, you can use the return value for the redirect() method you have [which I assume returns an HttpResponse too].

def logout_user(request):
     logout(request)
     response = redirect('app.home.views.home')
     response.delete_cookie('user_location')
     return response
SmileyChris
Thanks your suggestion worked..!!
Ramya