2011-08-31 28 views
6

我正在實現一個簡單的轉診系統。我有一箇中間件,它設置了標識引用用戶的會話變量。我有一個模型將推薦用戶與推薦用戶聯繫起來。我試圖使用User對象的post_save信號來填充這個模型。如何從post_save信號處理程序中訪問會話對象?如何從Django中的信號處理程序中獲取會話

回答

1

沒有使用thread specific global variable沒有辦法。

但我不確定你需要。對於我的引薦和邀請系統,我只是將用戶註冊爲正常,並且在用戶創建後,將引薦從會話中取出。在幾乎所有情況下,它仍然是同一屆會議。

如果有什麼關於你的會話阻止了,我會將它添加到創建用戶表單。

+0

我遇到了一些問題。 1.我的認證系統是一個單獨的應用程序(建立在django身份驗證),需要電子郵件激活。用戶通常不會首先登錄第一次,直到會話過期。因此,推薦需要在創建時記錄。 2.我想*不要混淆auth(或創建)視圖/模板,因爲我希望完全與auth系統隔離(如果可能)。現在,它看起來不太好。 –

+0

是的,你將不得不使用全局線程特定的變量......有點尷尬。 –

+0

感謝您的幫助。 –

0

你可能會找到有用的文件on using sessions out of views

+1

我在看,但是,我不知道如何獲得會話密鑰,我不得不知道正在使用哪種類型的會話存儲。 –

+1

AFAIK這不起作用,因爲你沒有信號處理程序中的會話密鑰。 – guettli

相關問題