我的Django项目中有一个SSO中间件,我需要传递一个参数。
在我的views.py
文件中,我有不同的视图函数,这些函数都被decorator_from_middleware_with_args
修饰但有不同的参数:
sso_decorator = decorator_from_middleware_with_args(SSOMiddleware)
@sso_decorator(True):
def index():
...
@sso_decorator(False):
def view():
...
这是我的中间件类:
class SSOMiddleware:
def __init__(self, some_arg=False):
self.some_arg = some_arg
def process_request(self, request):
print self.some_arg
当我通过url访问索引视图时,我在控制台中获得的输出是:
Some argument: False
Some argument: True
我在这里有两个问题:
为什么process_request函数执行了两次? 为什么它有不同的论点?