2017-02-21 159 views
-1

我有一个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', 
] 

只有这一个站点出现这些错误,并且我在多个站点上部署了相同的系统。我已经证实所有参考的上下文处理器和中间件都存在。我能看到什么来追踪这个问题?

+0

你确定它运行的是正确的django版本吗?它看起来像你忘了激活你的虚拟环境或东西...... – HassenPy

+0

模板内:''context_processors.config',' - 你有一个应用程序叫这样吗? – dahrens

+0

@HassenPy是的,它运行的是1.9,它不是虚拟环境 –

回答

0

在您的模板中,如上所述更改core.appmngr.context_processor, context_processors已从核心移至模板。

'template.appmngr.context_processor', 

这可能适合你。阅读更多here

+0

'core.appmngr'在我的项目中,不是django –

+0

的一部分,因为django模块已经在使用名称核心,所以将核心重命名为其他内容。 – Phares

+0

我可以试试,但是django模块根本没有被引用。此外,核心文件/ ....在我的项目中引用了287个地方。如果这不是真的问题,我真的不想做那么多的改变。因此,如果'django.core.appmngr.context_processor'从未被引用,为什么会有我自己的'core.appmngr.context_processor'成为问题? –

相关问题