2013-01-14 98 views
0

所以我從django 1.3升級到1.4,一切都很順利。然而,一些用戶剛獲得nginx拋出的Internal Server Error,通常是服務器崩潰的時候。從1.3升級到1.4時導致django崩潰的Cookie

調查顯示這是Cookie問題。在日誌中的錯誤是:

ImproperlyConfigured: Error importing authentication backend 
    site.app.backends.EmailModelBackend: "No module named site.app.backends" 

這是在升級過程中,因爲我改組我的項目,現在這個特定的後端是app.backends而非site.app.backends。顯然,這些信息被硬編碼到auth cookie中,這導致了問題。

有沒有什麼辦法可以將用戶通過電子郵件發送給用戶並告訴他們清除cookie?

回答

2

如果您使用默認的database-backed sessions,那麼對舊後端的引用將存儲在django_session表中,並且用戶的cookie只是對數據庫中行的引用。在這種情況下,您可以通過從數據庫中刪除所有會話數據來防止錯誤。

在你這樣做之前仔細想想。您可能不想刪除所有會話數據 - 例如,它會註銷所有用戶。

+0

註銷所有用戶不會是世界末日。謝謝你的提示。 – fredley

0

我不認爲你可以指責這餅乾。請用細齒梳再次檢查您的代碼,然後查找site.app.backends

如果您可以從崩潰中訪問調用堆棧,它會告訴您確切位置。

+0

沒有,我有雙重檢查。這隻會影響之前登錄到網站的瀏覽器,並且清除cookie會修復它。 – fredley

+0

你真的到處檢查過嗎?重定向?網址嗎?楷模?自定義中間件? –

+0

'grep -r site.app.backends .'。沒有結果。無論如何,它唯一被引用的地方是'settings.py'。 – fredley

相關問題