django-registration と auth を使用してログイン時にセッション変数を設定するにはどうすればよいですか?
-
20-09-2019 - |
質問
私は django-registration を使用してユーザーをアプリケーションにログインさせています。その部分はうまく機能します。私が理解できない部分は、ユーザーがログインするときにカスタムセッション変数を設定する方法です。たとえば、UserProfile データと他のいくつかの関数の出力を含む変数を設定したいと考えています。そうすれば、その情報を後続のビュー/テンプレートで使用できるようになります。
誰かがオンラインのチュートリアルを教えてくれたり、サンプルコードを投稿してくれたら、それは素晴らしいことです。
私はジャンゴ 1.1 と Python 2.6 を使用しています
解決
あなたはユーザーデータ(単に追加セッションデータ)の永続ストレージを必要としない場合は、見てます:
http://docs.djangoproject.com/en/dev/トピック/ HTTP /セッション/ の
あなたがdjango.contrib.authを使用する場合は、のセッションフレームワークは、おそらくすでに有効になります。
あなたは(セッションではなく、データベースだけでなく)追加のユーザデータの永続ストレージをしたい場合は、、あなたは別の「プロファイル」のモデルに保存されます。
ます。http://ドキュメント。 djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-usersする
他のヒント
@stefanwが代替解決策を提供してくれたと思いますが、元の質問に答えると次のようになります。
ログイン時にセッション データを設定するのは困難です。そのデータを設定する最も簡単な場所はビュー関数内であり、変更したい特定のビュー関数は contrib.django.auth アプリの一部であるためです。
したがって、オプションは次のようになります。
- セッション データを設定するための小さなミドルウェア クラスを作成します。
- ログイン テンプレートまたは必要なデータを設定する後続のページに統合できる、テンプレート タグまたはその他のコードを作成します。
- 独自のカスタム ログイン ビュー関数を作成します (実際、これは非常に簡単です)。
幸せなジャンゴー!