Модуль "django.core.context_processors" не определяет обработчик вызываемых запросов "auth"
У меня есть живой веб-сайт Django, я хочу сделать какое-то обслуживание на нем, но когда я скачал его и попытался открыть его с моего локального компьютера, и мой режим отладки верен, я столкнулся с этой ошибкой:
ImproperlyConfigured at /
Module "django.core.context_processors" does not define a "auth" callable request processor
Я использую Python 2.5
Буду благодарен за любую помощь.
2 ответа
Похоже, вы обновились до 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 в вашей рабочей среде и среде разработки, чтобы избежать подобных ошибок.
При обновлении до 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) полезны для отслеживания подобных изменений.
Сначала проверьте свою версию Django:
зайдите в свое приложение и запустите
$./manage.py shell
import django
django.get_version()
В Django >1.4 ранее помеченный как устаревший параметр DATABASE_ENGINE
устранен. (Это устаревание / удаление, такое как цикл tic / toc, типично для проекта 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!')
Надеюсь это поможет.