2015-08-27 93 views
1

如何在用戶刷新瀏覽器時刪除會話?我知道,以下刪除會話密鑰。瀏覽器刷新時刪除會話密鑰(Django)

del request.session['session_key'] 

編輯: 我試圖傳播不同意見在多個形式的用戶輸入的值,併爲我使用的會話變量。但是,當用戶手動刷新頁面時,我想清除會話密鑰。

+2

你有什麼辦法可以檢測到瀏覽器刷新網站? –

+0

我不知道。我知道如何刪除會話密鑰,但是我想在頁面刷新時刪除密鑰。 – tilaprimera

+0

這聽起來像一個[xy問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem),你想達到什麼目的? – Sayse

回答

2

在Django(我能想到)中,沒有辦法知道頁面是否已刷新或只是開始新的會話,頁面等。您可以使用請求和Javascript來做些事情。

如果一個頁面加載完成後,您只想刪除所有依賴於您希望發生這種情況的會話,請查看Signals或在請求完成後刪除會話。

回覆:刪除所有會話...

flush()從會話刪除當前會話的數據並刪除會話cookie。用戶會保留登錄https://docs.djangoproject.com/en/1.8/topics/http/sessions/#django.contrib.sessions.backends.base.SessionBase.flush

如果你只是想刪除的每個會話密鑰(並保持用戶登錄)然後執行:

for key in request.session.keys(): 
    del request.session[key] 

request.session刪除的每個會話。