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

时间:2013-08-19 21:05:54

标签: django django-views django-middleware

我有一个中间件功能,它会覆盖进程视图。

我想将变量传递给每个视图。在view_func的请求,args或kwargs参数中执行此操作的最佳位置是什么?

我试了这个没有运气:

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

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

1 个答案:

答案 0 :(得分:4)

评论栏,您可能希望使用context processor将变量放入模板上下文中。

编辑例如

这很简单,但是你走了:

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

然后将myapp.mymodule.my_context_processor添加到settings.py中的TEMPLATE_CONTEXT_PROCESSORS,并确保使用视图中的render快捷方式呈现模板。