模块“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!')
希望这可以帮助。