Django中间件:如何访问视图';来自中间件的参数
假设我有一个观点:Django中间件:如何访问视图';来自中间件的参数,django,django-middleware,Django,Django Middleware,假设我有一个观点: def pony_view(request, arg1, arg2): ... Make ponies, etc ... 和一个中间件: class MyMiddleware(object): def process_request(request): # How do I access arg1, arg2 here? 当然,arg1和arg2将通过带有URL.py的URL参数传入 我之所以需要这样做,是因为我想在view函数运行之前向r
def pony_view(request, arg1, arg2):
... Make ponies, etc ...
和一个中间件:
class MyMiddleware(object):
def process_request(request):
# How do I access arg1, arg2 here?
当然,arg1和arg2将通过带有URL.py的URL参数传入
我之所以需要这样做,是因为我想在view函数运行之前向request.session添加一些内容(不过我需要从URL中添加一些内容)。您必须实现该方法 其签名如下:
process_view(self, request, view_func, view_args, view_kwargs)
并在调用view函数之前执行:
process\u view()
在Django调用视图之前被调用。它应该返回None
或HttpResponse
对象。如果返回None
,Django将继续处理此请求,执行任何其他process\u view()
中间件,然后执行适当的视图。如果它返回一个HttpResponse
对象,Django将不会费心调用任何其他请求、视图或异常中间件,或适当的视图;它将返回HttpResponse
。每次响应都会调用响应中间件
然后,您应该能够通过以下方式访问arg1
和arg2
:
class MyMiddleware(object):
def process_view(self, request, view_func, view_args, view_kwargs):
arg1, arg2 = view_args[:2]
在调用
process\u view
之前,我需要访问该视图,因为在给定依赖于视图中存储的标志的条件下,我需要停止处理链中的其他中间件。这可能吗?