2011-08-31 14 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

関連する問題