1

初期化されたデータ構造をリクエスト オブジェクトに含めて、テンプレートのコンテキスト オブジェクトでアクセスできるようにしたいと考えています。私が今やっているのは、すべてのビューで手動で面倒なことを渡すことです:

render_to_response(...., ( {'menu': RequestContext(request)}))

リクエスト オブジェクトには、カスタム コンテキスト プロセッサを使用して挿入されるキーと値のペアが含まれます。これは機能しますが、リクエスト オブジェクトの選択された部分をテンプレート コンテキストに渡す、より一般的な方法があることを願っていました。一般的なビューで渡そうとしましたが、urlpatterns リストを解析するときにリクエスト オブジェクトがインスタンス化されていないことが判明しました。

4

2 に答える 2

1

これを実現するには、おそらく独自のミドルウェアを作成する必要があります。そうすれば、ビュー機能の前と後の両方で、リクエストを完全に制御できます。

ミドルウェアは非常に強力な概念であり、実装は思ったほど難しくありませんが、無理をしないでください。プログラム フローをたどるのが難しくなります。

于 2010-03-23T10:01:30.827 に答える
0

私は必ずしもあなたの質問を十分に理解しているわけではありません。

すべてのビューにを含める必要があると不満を言っているRequestContext場合は、RequestContextを渡すラッパーを作成する必要があります。ただし、リクエストを渡す必要があります。それも通過させたくない場合は、miklが提案するように独自のミドルウェアを作成する必要があるかもしれません。

または、すべてのビューで多くのメニュー項目を渡す必要があることに不満を持っています。これを行うのは間違った方法です。デフォルトでこれらがテンプレートに存在することを保証するテンプレートコンテキストプロセッサを定義する必要があります。

于 2010-03-23T10:37:08.113 に答える