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
之前,我需要访问该视图,因为在给定依赖于视图中存储的标志的条件下,我需要停止处理链中的其他中间件。这可能吗?