我目前正在用django開發一個應用程序,並且每次在渲染視圖或模板時出現錯誤時,我的會話被註銷。這最終是相當惱人的。我如何禁用此功能?請注意,如果在代碼加載/解析時發生錯誤(例如,如果視圖上的裝飾器失敗),那麼只有在視圖中存在錯誤時,我纔不會註銷。django:當請求出現錯誤時,請不要註銷`request.session.set_exipry`
編輯:我只是測試,是的,raise Exception
在視圖確實會造成這種情況。
我所有的意見都包裹着一個裝飾,其中,除其他事項外,不:
def needs_base_index_dict(func):
def wrapper(request, *args, **kwargs):
request.session.set_expiry(30*60)
#...
如果我註釋掉set_expiry
線,然後我沒有得到這個行爲。當我修復錯誤時,我仍然登錄。如果該行未被註釋掉,則視圖中的任何錯誤(包括raise Exception()
)都會將會話記錄在外。
我從來沒有聽說過這個「功能」 - 你可能想看看爲什麼會發生這種情況......你認爲在視圖中引發異常會導致這種情況嗎?動態模板錯誤不會導致我的這種行爲(比如說文件不存在,我得到一個IOError) –
@YujiTomita:檢查編輯 – Claudiu
您使用了哪個會話後端?默認的數據庫後端?此外,你檢查是否存在錯誤頁面的http標題中的cookie? – Jyrsa