Модуль "django.core.context_processors" не определяет обработчик запросов "auth"
У меня есть веб-сайт Django live, я хочу сделать какое-то обслуживание, но когда я скачал его и попытался открыть его с моей локальной машины, и мой режим отладки верен
Я столкнулся с этой ошибкой:
ImproperlyConfigured at /
Module "django.core.context_processors" does not define a "auth" callable request processor
Я использую Python 2.5
Буду благодарен за любую помощь.
Ответы
Ответ 1
Похоже, вы обновились до Django 1.4 или новее.
Обработчик контекстного контекста был перенесен с django.core.context_processors.auth
на django.contrib.auth.context_processors.auth
. Этот шаг начался в Django 1.2, а django.core.context_processors.auth
был полностью удален в Django 1.4.
Я рекомендую вам запустить ту же версию Django в своих dev и производственных средах, чтобы предотвратить такие ошибки.
При обновлении до Django 1.4 вам необходимо внести следующее изменение в TEMPLATE_CONTEXT_PROCESSORS
в файле настроек:
# old
TEMPLATE_CONTEXT_PROCESSORS = ("django.core.context_processors.auth",
...
)
# new
TEMPLATE_CONTEXT_PROCESSORS = ("django.contrib.auth.context_processors.auth",
...
)
При переносе примечания к выпуску (1.2, 1.3, 1.4) полезны для обнаружения таких изменений.
Ответ 2
Сначала проверьте версию Django:
зайдите в свое приложение и запустите
$./manage.py shell
import django
django.get_version()
В Django > 1.4 удаленная ранее устаревшая настройка DATABASE_ENGINE
удаляется. (Это отклонение/удаление типа tic/toc-cycle типично для проекта Django.)
Я использую следующий код для исправления устаревших скриптов, которые по некоторым причинам должны быть устаревшими...
if not ((hasattr(settings, 'DATABASE_ENGINE') and (settings.DATABASES['default']['ENGINE'] or 'ENGINE' in [x for y in settings.DATABASES.itervalues() for x in y]))):
try:
setattr(settings, 'DATABASE_ENGINE', settings.DATABASES['default']['ENGINE'])
except:
raise Exception('No default ENGINE set in settings.DATABASES!')
Надеюсь, что это поможет.