これはSO私たちは、テンプレートがコンテキスト変数の標準セットを与えられるしたいのですがmiddleware and views communicatingミドルウェア
にスレッドこれと非常に似て質問です。したがって、コンテキストプロセッサは適切だと思われますが、コンテキストプロセッサがビューを認識しているようには見えません。私たちは以前、呼び出しスタックを検査して、どのビューが何をしているかに関するコンテキスト情報を取得することを余儀なくされました。
私たちは私たちのビューへのハンドルを与えるミドルウェアのミドルウェアスレッドだけでなく、process_view()
署名を見たところです。
これは我々のニーズに近い見えたが、私たちはコンテキスト変数を変更することはできませんでした、どちらも他のミドルウェアの方法をしました。
私たちの初心者は、テンプレートに必要なすべてのグローバル情報とコンテキスト情報でリクエストオブジェクトを変更し、テンプレートに{{request.something}}
から必要な特定の情報(例:{{request.viewname}}
)を呼び出すように強制しました。
だから、私たちの質問:
- は、テンプレートにコンテキスト/グローバルアプリ固有の情報をプッシュするために行うには受け入れられ事リクエストオブジェクトに値を設定/変更していますか?あるいは、標準的なプラクティスは常にそれを文脈に入れることですか?
- 明示的に渡すか、何らかのスタックイントロスペクションを実行することをコンテキストプロセッサが意識しないようにする方法はありますか?
middleware.process_response
にはコンテキストを変更する機会がありますか、それとも不変ですか?
も参照http://jboxer.com/2009/05/django-middleware-vs-context-processors/ – Ztyx