2017-02-02 3 views
0

私の質問は、複数のビューにわたってコンテキストオブジェクトを維持する方法はありますか?ホームページにいるとしますが、アプリケーションの特定の部分に移動するためのリンクをクリックしたが、ビューを変更するたびにこの情報のDBを過度にクエリしないようにコンテキスト情報を維持したいとします。Django 1.10 - コンテキストオブジェクト情報の維持

私はミックスインなどを知っていますが、これらは情報を維持していないようですか、間違っていますか?質問は、コンテキスト情報にアクセスして次のビューに渡すことができますか?

+0

私は[Context Processors](https://docs.djangoproject.com/ja/1.10/ref/templates/api/#writing-your-own-context-processors)を探していますが、私は完全にはわからない – Sayse

+0

すべてのリクエストがそれ自身のスレッドで処理されるため、通過できません。実際には同時に複数のコンテキストが存在する可能性があります。パフォーマンスの問題が発生していないかぎり、データベースクエリについて心配する必要はありません。それはかなり多く処理することができます。問題が発生したときにその場に出たら、最適化するための他の方法があります。代わりに、サイトのキャッシュを使用して読み込み時間を改善します。 – trixn

答えて

2

ビュー全体の状態を維持するために、you can use django sessions

セッションフレームワークを使用すると、サイト訪問者ごとに任意のデータを格納および取得できます。

あなたは、セッションミドルウェアを有効にし、適切な設定を追加する必要があります。いったん行うと、各ビューに手動でコードを追加して、セッションにそのビューのコンテキストに関する情報があるかどうかを確認し、コンテキストからのデータでセッションを更新する必要があります。

関連する問題