Django:如何为所有视图(而不是模板)提供上下文?

Joh*_*ann 2 django

我想为所有基于函数的视图(FBV)提供一些上下文,类似于TEMPLATE_CONTEXT_PROCESSORS(CP)为所有模板提供上下文的方式.后者对我不起作用,因为在渲染模板之前我需要上下文.

特别是,在我的网站上,我有一个函数接受请求并返回Category焦点项目的模型.我的CP为所有模板提供此功能,但我发现自己从我的FBV发出同样的呼叫,并希望删除此冗余.

这个问题类似,但它预先假定从视图中访问CP的输出的方法.这看起来很糟糕,我不确定这是最好的方法.

Django的做法是什么?

mwj*_*son 5

使用中间件 ......

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

        request.extra_model = self.get_model(request.user)
Run Code Online (Sandbox Code Playgroud)