object() 在 django 1.10 中不带参数

object() takes no parameters in django 1.10

我正在尝试在我的应用程序中允许 CORS,以便我的跨域 javascript 客户端可以访问我的 API,我已经安装了 django-cors-headers。我现在正在尝试添加中间件:

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware', # Remove this and it works
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

但是这给了我一个 TypeError:

TypeError: object() takes no parameters

这在 django 1.10 更新之前工作正常。有什么想法吗?

This issue says that django-cors-headers is no longer supported, and suggests using django-cors-middleware 代替。

如果您有自定义中间件并且您已经从 MIDDLEWARE_CLASSES 迁移到 MIDDLEWARE,那么您需要更新您的中间件。详细信息:this Django documentation page。 TL;DR,MiddlewareMixin 的子类而不是对象:

from django.utils.deprecation import MiddlewareMixin
class FOOMiddleware(MiddlewareMixin):
    pass