在我的django應用程序中,我按以下方式處理登錄。用戶轉到網關頁面(index.html) - 如果他們當前沒有登錄,則會有一個登錄名/密碼錶格以及其他材料。成功登錄(或者如果他們以其他方式登錄時進入該頁面),頁面呈現略微不同(無登錄表單)。Django會話剛剛登錄後會間歇性消失
我處理這件事的方法是在視圖中的index.html我做的:
logged_in = request.user.is_authenticated()
,然後logged_in
變量傳遞給模板,進行檢查,看網頁它的哪個版本渲染。
當用戶登錄時,登錄查看來電:
user = authenticate(username=username, password=password)
if user is not none:
login(request, user)
然後,他們將被重定向回的index.html。
通常情況下,這很好。我所看到的是,有時在HttpResponseRedirect
和索引視圖之間是request.user被清除。我已經記錄了一段時間,寫入日誌作爲登錄視圖中的最後一項和索引視圖中的第一項。它對用戶的影響是,它看起來像他們錯誤地登錄(除了沒有消息告訴他們)。
它看起來好像爆發了,因爲在系統中會好一段時間,然後我會看到它發生在連續4-5次的用戶身上。我還應該注意到,我從來沒有見過/聽說過任何點發生這種情況,除了在登錄,據我所知(它可能發生了,沒有人抱怨),一旦他們在,他們在。
我在做我的登錄方法在這裏顯然不對嗎?
您是否啓用了緩存? – 2009-10-01 15:16:55
我沒有啓用服務器端緩存。我已經看到了現在,然後在哪裏我需要使用never_cache裝飾器來避免客戶端緩存,但這似乎並不是這種情況(或可以嗎?) – geoffjentry 2009-10-01 17:02:13
我還應該注意,我從來沒有看到這個使用開發服務器,只有apache瓦特/ mod_python – geoffjentry 2009-10-01 17:12:45