1

當用戶註銷時,使用Django logout刷新所有會話值。 我有一種方法可以保留一些會話值,即使用戶註銷?django - 在用戶註銷後存儲會話值

+0

你說的 「保持」 是什麼意思?會話是針對特定用戶的,因此當用戶註銷時,離開他的會話是沒有意義的。如果您需要在`django.contrib.auth.logout`刷新會話數據之前在db中存儲一些值,您可以通過簡單地覆蓋`django.contrib.auth.views.logout`來完成。 – gorus 2011-02-13 17:35:40

+1

這是什麼想要做的。當用戶註銷時,我想將用戶名保留在會話變量中,因此當他回到網站時,我可以「識別」用戶,以便我可以看到「hello user」。 – avatar 2011-02-13 20:52:42

回答

4

您可能想使用Cookie而不是會話來實現此目的。

# views.py, login view 
# After you have authenticated a user 
username = 'john.smith' # Grab this from the login form 

# If you want the cookie to last even if the user closes his browser, 
# set max_age to a very large value, otherwise don't use max_age. 
response = render_to_response(...) 
response.set_cookie('the_current_user', username, max_age=9999999999) 

在你登錄視圖:

remembered_username = request.COOKIES.get('the_current_user', '') 

按上面的模板顯示:

Hello {{ remembered_username }} 

參考:http://docs.djangoproject.com/en/1.2/ref/request-response/#django.http.HttpResponse.set_cookie