开发者

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

开发者 https://www.devze.com 2023-04-06 08:39 出处:网络
I have a Django live website , i want to do some kind of maintenance on it but when I downloaded it and triedto open it from my local machine and my debug mode is true

I have a Django live website , i want to do some kind of maintenance on it but when I downloaded it and tried to open it from my local machine and my debug mode is true I faced this error:

ImproperlyConfigured at /

Module "django.core.context_processors" does not define a "au开发者_运维问答th" callable request processor

I'm using Python 2.5

I would be grateful for any help.


It looks like you have upgraded to Django 1.4 or later.

The auth context processor has been moved from django.core.context_processors.auth to django.contrib.auth.context_processors.auth. The move started in Django 1.2, and django.core.context_processors.auth was completely removed in Django 1.4.

I recommend you run the same version of Django on your dev and production environments to prevent errors like this.

When you upgrade to Django 1.4, you need to make the following change to TEMPLATE_CONTEXT_PROCESSORS in your settings file:

# old
TEMPLATE_CONTEXT_PROCESSORS = ("django.core.context_processors.auth",
                               ...
)
# new
TEMPLATE_CONTEXT_PROCESSORS = ("django.contrib.auth.context_processors.auth",
                               ...
)

When migrating, the release notes (1.2, 1.3, 1.4) are useful for catching changes like this.


First check your Django version:

go into your app and run

$./manage.py shell
import django
django.get_version()

In Django >1.4 the previously deprecated-marked setting DATABASE_ENGINE is removed. (This deprecation/removal like tic/toc-cycle is typical for the Django project. )

I am using the following code to fix legacy scripts, which for some reasons have to be kept obsolete...

    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!')

Hope this helps.

0

精彩评论

暂无评论...
验证码 换一张
取 消