如何使用django中间件将值传递给每个视图

如何使用django中间件将值传递给每个视图,django,django-views,django-middleware,Django,Django Views,Django Middleware,我有一个覆盖流程视图的中间件功能 我想向每个视图传递一个变量。在request、args或kwargs参数中执行此操作的最佳位置是查看_func吗 我尝试了这个,但没有成功: def process_view(self, request, view_func, view_args, view_kwargs): view_kwargs['value'] = 'my value' response = view_func(request, *view_args, *

我有一个覆盖流程视图的中间件功能

我想向每个视图传递一个变量。在request、args或kwargs参数中执行此操作的最佳位置是查看_func吗

我尝试了这个,但没有成功:

def process_view(self, request, view_func, view_args, view_kwargs):
        view_kwargs['value'] = 'my value'

        response = view_func(request, *view_args, **view_kwargs)


        return response

如何使用中间件将值传递给每个视图?

在您的注释栏上,您可能希望使用a将变量放入模板上下文中

例如编辑

这很琐碎,但你可以这样做:

def my_context_processor(request):
    if request.session['my_variable']:
        return {'foo': 'bar'}

然后将
myapp.mymodule.my\u context\u processor
添加到settings.py中的TEMPLATE\u context\u PROCESSORS,并确保使用视图中的快捷方式呈现模板。

如果用户未设置设置,我想向他们弹出消息。我将以会话变量为基础。我想如果session变量为true,我会将一个变量传递给视图以传递给模板。有更好的方法吗?我是否应该继续将中间件覆盖与上下文处理器结合使用?没有,为什么需要?您可以直接在上下文处理器中访问请求,从而访问会话,因此所有的逻辑都可以到达那里。您能举个例子吗?我找不到任何请求上下文能够基于条件逻辑将变量传递给模板的例子。非常感谢。