Django的:导入错误:没有模块名为context_processors
我有一个Django的1.9部署中经常收到此错误:Django的:导入错误:没有模块名为context_processors
Internal Server Error:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 174, in get_response
response = self.process_exception_by_middleware(e, request)
File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 172, in get_response
response = response.render()
File "/usr/lib/python2.7/site-packages/django/template/response.py", line 160, in render
self.content = self.rendered_content
File "/usr/lib/python2.7/site-packages/django/template/response.py", line 137, in rendered_content
content = template.render(context, self._request)
File "/usr/lib/python2.7/site-packages/django/template/backends/django.py", line 95, in render
return self.template.render(context)
File "/usr/lib/python2.7/site-packages/django/template/base.py", line 204, in render
with context.bind_template(self):
File "/usr/lib64/python2.7/contextlib.py", line 17, in __enter__
return self.gen.next()
File "/usr/lib/python2.7/site-packages/django/template/context.py", line 256, in bind_template
processors = (template.engine.template_context_processors +
File "/usr/lib/python2.7/site-packages/django/utils/functional.py", line 33, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/usr/lib/python2.7/site-packages/django/template/engine.py", line 105, in template_context_processors
return tuple(import_string(path) for path in context_processors)
File "/usr/lib/python2.7/site-packages/django/template/engine.py", line 105, in <genexpr>
return tuple(import_string(path) for path in context_processors)
File "/usr/lib/python2.7/site-packages/django/utils/module_loading.py", line 20, in import_string
module = import_module(module_path)
File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named context_processors
这里是我的模板列表:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'motor/ui/templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'context_processors.config',
'ui.context_processors.navigation',
'core.appmngr.context_processor',
],
},
},
]
而且我MIDDLEWARE_CLASSES:
MIDDLEWARE_CLASSES = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'middleware.LastSiteUrl',
]
只有这一个站点出现这些错误,并且我在多个站点上部署了相同的系统。我已经证实所有参考的上下文处理器和中间件都存在。我能看到什么来追踪这个问题?
在您的模板中,如上所述更改core.appmngr.context_processor
, context_processors已从核心移至模板。
'template.appmngr.context_processor',
这可能适合你。阅读更多here
'core.appmngr'在我的项目中,不是django –
的一部分,因为django模块已经在使用名称核心,所以将核心重命名为其他内容。 – Phares
我可以试试,但是django模块根本没有被引用。此外,核心文件/ ....在我的项目中引用了287个地方。如果这不是真的问题,我真的不想做那么多的改变。因此,如果'django.core.appmngr.context_processor'从未被引用,为什么会有我自己的'core.appmngr.context_processor'成为问题? –
你确定它运行的是正确的django版本吗?它看起来像你忘了激活你的虚拟环境或东西...... – HassenPy
模板内:''context_processors.config',' - 你有一个应用程序叫这样吗? – dahrens
@HassenPy是的,它运行的是1.9,它不是虚拟环境 –