Moved ModelAdmin.check_dependancies to AdminSite. Make debugging problems why the admin is not working more apparent.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@8274 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
65be56816f
commit
89a8990a76
|
@ -5,7 +5,7 @@ from django.forms.models import BaseInlineFormSet
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.contrib.admin import widgets
|
from django.contrib.admin import widgets
|
||||||
from django.contrib.admin.util import quote, unquote, get_deleted_objects
|
from django.contrib.admin.util import quote, unquote, get_deleted_objects
|
||||||
from django.core.exceptions import ImproperlyConfigured, PermissionDenied
|
from django.core.exceptions import PermissionDenied
|
||||||
from django.db import models, transaction
|
from django.db import models, transaction
|
||||||
from django.http import Http404, HttpResponse, HttpResponseRedirect
|
from django.http import Http404, HttpResponse, HttpResponseRedirect
|
||||||
from django.shortcuts import get_object_or_404, render_to_response
|
from django.shortcuts import get_object_or_404, render_to_response
|
||||||
|
@ -262,10 +262,6 @@ class ModelAdmin(BaseModelAdmin):
|
||||||
super(ModelAdmin, self).__init__()
|
super(ModelAdmin, self).__init__()
|
||||||
|
|
||||||
def __call__(self, request, url):
|
def __call__(self, request, url):
|
||||||
from django.conf import settings
|
|
||||||
if settings.DEBUG:
|
|
||||||
self.check_dependancies()
|
|
||||||
|
|
||||||
# Delegate to the appropriate method, based on the URL.
|
# Delegate to the appropriate method, based on the URL.
|
||||||
if url is None:
|
if url is None:
|
||||||
return self.changelist_view(request)
|
return self.changelist_view(request)
|
||||||
|
@ -278,23 +274,6 @@ class ModelAdmin(BaseModelAdmin):
|
||||||
else:
|
else:
|
||||||
return self.change_view(request, unquote(url))
|
return self.change_view(request, unquote(url))
|
||||||
|
|
||||||
def check_dependancies(self):
|
|
||||||
"""
|
|
||||||
Check that all things needed to run the admin have been correctly installed.
|
|
||||||
|
|
||||||
The default implementation checks that LogEntry, ContentType and the
|
|
||||||
auth context processor are installed.
|
|
||||||
"""
|
|
||||||
from django.conf import settings
|
|
||||||
from django.contrib.admin.models import LogEntry
|
|
||||||
|
|
||||||
if not LogEntry._meta.installed:
|
|
||||||
raise ImproperlyConfigured("Put 'django.contrib.admin' in your INSTALLED_APPS setting in order to use the admin application.")
|
|
||||||
if not ContentType._meta.installed:
|
|
||||||
raise ImproperlyConfigured("Put 'django.contrib.contenttypes' in your INSTALLED_APPS setting in order to use the admin application.")
|
|
||||||
if 'django.core.context_processors.auth' not in settings.TEMPLATE_CONTEXT_PROCESSORS:
|
|
||||||
raise ImproperlyConfigured("Put 'django.core.context_processors.auth' in your TEMPLATE_CONTEXT_PROCESSORS setting in order to use the admin application.")
|
|
||||||
|
|
||||||
def _media(self):
|
def _media(self):
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ from django import http, template
|
||||||
from django.contrib.admin import ModelAdmin
|
from django.contrib.admin import ModelAdmin
|
||||||
from django.contrib.auth import authenticate, login
|
from django.contrib.auth import authenticate, login
|
||||||
from django.db.models.base import ModelBase
|
from django.db.models.base import ModelBase
|
||||||
|
from django.core.exceptions import ImproperlyConfigured
|
||||||
from django.shortcuts import render_to_response
|
from django.shortcuts import render_to_response
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
from django.utils.text import capfirst
|
from django.utils.text import capfirst
|
||||||
|
@ -112,6 +113,23 @@ class AdminSite(object):
|
||||||
*at least one* page in the admin site.
|
*at least one* page in the admin site.
|
||||||
"""
|
"""
|
||||||
return request.user.is_authenticated() and request.user.is_staff
|
return request.user.is_authenticated() and request.user.is_staff
|
||||||
|
|
||||||
|
def check_dependancies(self):
|
||||||
|
"""
|
||||||
|
Check that all things needed to run the admin have been correctly installed.
|
||||||
|
|
||||||
|
The default implementation checks that LogEntry, ContentType and the
|
||||||
|
auth context processor are installed.
|
||||||
|
"""
|
||||||
|
from django.conf import settings
|
||||||
|
from django.contrib.admin.models import LogEntry
|
||||||
|
|
||||||
|
if not LogEntry._meta.installed:
|
||||||
|
raise ImproperlyConfigured("Put 'django.contrib.admin' in your INSTALLED_APPS setting in order to use the admin application.")
|
||||||
|
if not ContentType._meta.installed:
|
||||||
|
raise ImproperlyConfigured("Put 'django.contrib.contenttypes' in your INSTALLED_APPS setting in order to use the admin application.")
|
||||||
|
if 'django.core.context_processors.auth' not in settings.TEMPLATE_CONTEXT_PROCESSORS:
|
||||||
|
raise ImproperlyConfigured("Put 'django.core.context_processors.auth' in your TEMPLATE_CONTEXT_PROCESSORS setting in order to use the admin application.")
|
||||||
|
|
||||||
def root(self, request, url):
|
def root(self, request, url):
|
||||||
"""
|
"""
|
||||||
|
@ -121,6 +139,9 @@ class AdminSite(object):
|
||||||
"""
|
"""
|
||||||
if request.method == 'GET' and not request.path.endswith('/'):
|
if request.method == 'GET' and not request.path.endswith('/'):
|
||||||
return http.HttpResponseRedirect(request.path + '/')
|
return http.HttpResponseRedirect(request.path + '/')
|
||||||
|
|
||||||
|
if settings.DEBUG:
|
||||||
|
self.check_dependancies()
|
||||||
|
|
||||||
# Figure out the admin base URL path and stash it for later use
|
# Figure out the admin base URL path and stash it for later use
|
||||||
self.root_path = re.sub(re.escape(url) + '$', '', request.path)
|
self.root_path = re.sub(re.escape(url) + '$', '', request.path)
|
||||||
|
|
Loading…
Reference in New Issue