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
我正在尝试在我的应用程序中允许 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