2

基本的に、Djangoで変数を永続的にしたいのですが、その方法がわかりません。

もっと正確に言うと、ユーザーがサイトにログインするときに(たとえば、ChoiceFieldを介して)特定のプロジェクトを選択するようにします。次に、彼が別のプロジェクトを選択しない限り、サイトは彼が選択したプロジェクトを「認識」しているため、彼はこのプロジェクトに関連するいくつかのアクションを実行できます。

そんなことがあるものか ?セッション変数は進むべき道ですか?それともキャッシュシステム?いくつかのヒントをいただければ幸いです:)

はっきりしない場合はお知らせください

4

2 に答える 2

5

はい-セッション変数を使用することをお勧めします。これらは永続的ですが、ユーザーごとにのみ使用されるためです。キャッシュはすべてのユーザーに対して保持されます。

これをチェックしてください:Djangoドキュメントの「セッションの使用方法」 。

基本的に、セッションエンジンを次のように設定する必要がありますsettings.py

SESSION_ENGINE = 'django.contrib.sessions.backends.cookies'

そして、ビューでこれを行うことができます:

request.session['project'] = 'Some Project'

そして、テンプレートで次を使用できます。

{{ request.session.project }}
于 2011-08-24T09:52:34.143 に答える
1

セッションストレージが稼働している限り、セッションは良好です。つまり、この機能の信頼性が必要な場合は、データベースセッションバックエンド(またはRedisなど)を使用する必要があります。

また、ユーザープロファイルモデルに追加ForeignKey(Project, on_delete=SET_NULL)し、それを使用して現在のプロジェクトを保存することもできます。

于 2011-08-24T09:55:56.047 に答える