我有一个中间件功能,它会覆盖进程视图。
我想将变量传递给每个视图。在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
如何使用中间件将值传递给每个视图?
答案 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
快捷方式呈现模板。