2009-08-14 42 views
14

Tôi chuyển hướng người dùng đến trang chủ sau khi đăng xuất. Ở giữa tôi muốn xóa tất cả/hoặc cookie khách hàng cụ thể (tôi đã đặt trước đó).Đăng xuất Django (chuyển hướng đến trang chủ) .. Xóa cookie?

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

Để gọi response.delete_cookie ('user_location'), không có đối tượng phản hồi. Làm thế nào để tôi làm điều này?

Trả lời

22

Giống như jobscry đã nói, đăng xuất() xóa dữ liệu phiên, nhưng có vẻ như bạn cũng đã đặt cookie của riêng mình.

Bạn có thể quấn xem auth logout, mà sẽ trả về một HttpResponse:

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

Hoặc nếu bạn chỉ sử dụng phương pháp logout như trái ngược với quan điểm, bạn có thể sử dụng giá trị trả về để chuyển hướng () phương pháp bạn có [mà tôi giả định trả về một HttpResponse quá].

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

Cảm ơn đề xuất của bạn đã làm việc .. !! – Ramya

+3

** NB ** _ "Do cách thức hoạt động của cookie,' đường dẫn' và 'miền' phải là cùng giá trị bạn đã sử dụng trong' set_cookie() '- nếu không cookie sẽ không bị xóa." _ Https://docs.djangoproject.com/en/1.3/ref/request-response/#django.http.HttpResponse.delete_cookie –

+0

Cảm ơn bạn @MattBall. Đây phải là trường hợp với bất kỳ ngôn ngữ, khuôn khổ, thư viện, v.v. – muffs

Các vấn đề liên quan