2016-05-06 4 views
1

TEMPLATE_CONTEXT_PROCESSORS(CP)がすべてのテンプレートにコンテキストを提供するのと同様の、すべての機能ベースのビュー(FBV)にいくつかのコンテキストを提供したいと思います。テンプレートをレンダリングする前にそのコンテキストが必要であるため、後者は私のためには機能しません。Django:テンプレートではなく、すべてのビューにコンテキストを提供する方法は?

特に私のサイトでは、要求を受け取り、フォーカスのある項目のCategoryのモデルを返す関数を持っています。私のCPはこれをすべてのテンプレートに提供していますが、私はFBVから同じ呼び出しをしていて、この冗長性を取り除きたいと思います。

This questionも同様ですが、ビューからCPの出力にアクセスする方法を前提としています。これはハッキーなようだが、私はそれが最善のアプローチだとは思っていない。

これを行うには、Djangoの方法は何ですか?

答えて

4

使用Middleware ...

class MyModelMiddleware(object): 
    def process_request(self, request): 

     request.extra_model = self.get_model(request.user) 
関連する問題