我正在使用https://gist.github.com/426829中提供的中间件进行跨站点脚本编写。
但是,当我将中间件添加到MIDDLEWARE_CLASSES时,会得到以下错误:
ImproperlyConfigured:不是中间件模块。
我的MIDDLEWARE_CLASSES看起来是这样的:
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',)我没有更改要点中的任何代码。有process_request和process_response方法。我正在Ubuntu上运行Python和Django的最新版本。
发布于 2012-01-16 09:58:38
TempMiddleware是什么?模块的名称,还是类的名称?正如您在其他条目中所看到的,您需要实际类的完全限定Python路径。如果TempMiddleware是模块的名称,那么您需要TempMiddleware.MyMiddlewareClass (并且应该真正遵循PEP8命名约定)--如果它是类的名称,则需要my_module.TempMiddleware。
发布于 2012-01-16 09:32:53
编辑:
TempMiddleware不重要。它是类的名称,您必须将整个导入路径。
例如:
'django.contrib.auth.middleware.AuthenticationMiddleware'而不是
'AuthenticationMiddleware'因此,如果您的类位于app_name/middleware.py . be中,则应该是
app_name.middlaware.TempMiddleware这仅仅意味着在您的设置文件中,变量MIDDLEWARE_CLASSES包含一个模块列表,其中一个列出的模块不是中间件。
可能的原因:
https://stackoverflow.com/questions/8877818
复制相似问题