【发布时间】:2016-08-24 11:50:52
【问题描述】:
我有一个自定义中间件,在它的 process_view 中我得到了一些令牌。我需要将此令牌传递给呈现的结果 html。
我认为 context_processor 是修改上下文的好地方,但看起来很难将一些数据从中间件传递到处理器。
但似乎 process_view 和上下文处理器进行通信的唯一方法是请求对象。如果将任何字段设置为请求,我会得到“WSGIRequest”对象不支持项目分配“错误。下面是一段代码:
def process_view(self, request, view_func, view_args, view_kwargs):
...
with log(request, view_func.__name__, info) as id:
request['TOKEN_ID'] = logger.get().get_id() #here is an error
response = view_func(request, *view_args, **view_kwargs)
所以,看来我做错了什么。有没有办法沟通 middleware.process_view 和 context_processor?或者我应该改变另一种方式将数据从中间件传递到 html?
【问题讨论】: