Django中间件:Isn';t中间件模块错误
我正在使用中提供的中间件执行跨站点脚本编写 但是,当我将中间件添加到Django中间件:Isn';t中间件模块错误,django,django-middleware,Django,Django Middleware,我正在使用中提供的中间件执行跨站点脚本编写 但是,当我将中间件添加到middleware\u CLASSES时,我得到了错误: 配置不当:不是中间件模块 我的中间件\u类如下所示: MIDDLEWARE_CLASSES = ('django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware',
middleware\u CLASSES
时,我得到了错误:
配置不当:不是中间件模块
我的中间件\u类
如下所示:
MIDDLEWARE_CLASSES = ('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'TempMiddleware',)
我没有更改要点中的任何代码<代码>处理请求和处理响应
方法都存在。我在Ubuntu上运行最新版本的Python和Django。编辑:
TempMiddleware
不可导入。它是类的名称,您必须放置整个导入路径
例如:
而不是
'AuthenticationMiddleware'
因此,如果您的类位于app_name/middleware.py中,则应该是
app_name.middlaware.TempMiddleware
这只是意味着在设置文件中,变量
MIDDLEWARE\u CLASSES
包含一个模块列表,其中列出的模块之一不是中间件
可能的原因:
- 您添加了一个不声明中间件方法的中间件:通过删除您添加的最后一个中间件来修复该问题
- 您添加了一个正确的中间件,但忘记在名称的末尾添加一个coma,因此字符串被连接起来,这使得django认为两个中间件实际上是一个:通过添加缺少的coma来修复这一问题
- 什么是
中间件
?模块的名称,还是类的名称?正如您在其他条目中看到的,您需要实际类的完全限定Python路径。如果TempMiddleware
是模块的名称,您需要TempMiddleware.MyMiddlewareClass
(您应该真正遵循命名约定)-如果是类的名称,您需要my_模块。TempMiddleware
显示您的中间件类设置。中间件类=('django.middleware.common.CommonMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','TempMiddleware')但是它能够定位中间件模块。错误显示-TempMiddleware不是中间件模块。是的。导入在shell中工作。TempMiddleware
-要点是指XsSharing
?您提到的两件事似乎都不是问题。然后回答@Dominic Rodger发布了上述设置。让我知道可以做什么我错了。对Django来说很陌生。谢谢,我现在明白了。但即使现在后端工作,我仍然得到以下错误。访问控制不允许原点允许原点。
app_name.middlaware.TempMiddleware