"没有名为context_processors的模块"升级后

时间:2017-01-30 22:33:19

标签: python django

我已将Django从版本 1.8 升级到版本 1.10 ,现在我收到以下错误:

No module named context_processors

这与settings.py中的此代码有关。如果我注释掉以'django.core开头的行,它运行正常,但我显然会失去功能:

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [
        TEMPLATE_PATH,
    ],
    'APP_DIRS': True,
    'OPTIONS': {
        'debug': DEBUG,
        'context_processors': [
            ...
            'django.core.context_processors.debug',
            'django.core.context_processors.i18n',
            'django.core.context_processors.media',
            'django.core.context_processors.static',
            'django.core.context_processors.tz',
            'django.contrib.messages.context_processors.messages',
            ...
    ],
    },
},
]

我该如何解决这个问题?

注意:Thisthisthis都很相似,但Google没有回复解决此问题。

1 个答案:

答案 0 :(得分:2)

经过大量挖掘后,我找到了解决办法。隐藏在the documentation中是该问题的解决方案:

  

django.core.context_processors

     

内置模板上下文处理器已移至django.template.context_processors。

因此,要解决此问题,您需要将django.core替换为django.template。代码将如下所示:

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [
        TEMPLATE_PATH,
    ],
    'APP_DIRS': True,
    'OPTIONS': {
        'debug': DEBUG,
        'context_processors': [
            ...
            'django.template.context_processors.debug',
            'django.template.context_processors.i18n',
            'django.template.context_processors.media',
            'django.template.context_processors.static',
            'django.template.context_processors.tz',
            'django.contrib.messages.context_processors.messages',
            ...
    ],
    },
},
]