模块“django.core.context_processors”没有定义“auth”可调用的请求处理器

我有一个Django直播网站,我想做一些维护,但是当我下载它,并试图从我的本地机器打开它,我的debugging模式是真的我遇到了这个错误:

ImproperlyConfigured at / Module "django.core.context_processors" does not define a "auth" callable request processor 

我正在使用Python 2.5

我会很感激任何帮助。

看起来你已经升级到Django 1.4或更高版本。

auth上下文处理器已经从django.core.context_processors.auth移动到django.contrib.auth.context_processors.auth 。 这个过程从Django 1.2开始, django.core.context_processors.auth在Django 1.4中完全删除。

我build议你在开发和生产环境中运行相同版本的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-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!') 

希望这可以帮助。