Модуль "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!')

Надеюсь это поможет.

Другие вопросы по тегам