python - Django 1.11 新的中间件和 decorator_from_middleware_with_args
问题描述
我一直在寻找向中间件类发送参数(名称),但文档真的很矛盾
当我尝试向init添加 *args、**kwargs 或命名参数时,我收到以下消息:TypeError: init () got an unexpected keyword argument
前往手册,它说:
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
但是,如果中间件的 init 不能接受参数,这怎么可能呢?
有人知道如何在 Django 1.11 中使用它吗?
解决方案
推荐阅读
- excel - 尝试构建一个宏以将文本框从 Powerpoint 复制到 Ex
- cplex - 有没有办法在 CPLEX 中迭代二维数组
- reactjs - MaterialUI 数据网格加载动画无限循环
- discord.py - 在枕头上裁剪。(discord.py)
- java - JPA中的递归关系在postgresql下丢失但在h2数据库下保留
- api - 在 Snowflake 中调用 REST API
- perforce - 如何将 Perforce 移动到 Linux 服务器上的不同硬盘驱动器/SSD
- core-data - 统计满足特定条件的核心数据属性(SwiftUI)
- xml - 如何将多个文件内容插入 xml?
- go - 强制脚本验证标志失败(脚本评估没有错误,但以假/空顶部堆栈元素完成)