Django 1.11新的中间件和decorator_from_middleware_with_args

时间:2018-11-14 08:58:55

标签: python django

我一直在向中间件类发送参数(名称),但是文档确实矛盾

当我尝试在 init 中添加* args,** kwargs或命名参数时,出现以下消息:TypeError: init ()得到了意外的关键字参数< / p>

转到手册,上面写着:

  

Django仅使用get_response参数初始化中间件,因此您不能将 init ()定义为需要任何其他参数。

然后我找到了一个名为decorator_from_middleware_with_args的方法,文档说

  

decorator_from_middleware_with_args(middleware_class)[source]¶喜欢   decorator_from_middleware,但返回一个接受   要传递给middleware_class的参数。例如,   Cache_page()装饰器是通过CacheMiddleware创建的,如下所示:

cache_page = decorator_from_middleware_with_args(CacheMiddleware)

@cache_page(3600)
def my_view(request):
    pass

但是如果中间件的初始化不能接受参数怎么办?

有人知道如何在Django 1.11中使它工作吗?

0 个答案:

没有答案