diff options
| author | Raffaele Salmaso <raffaele@salmaso.org> | 2016-12-29 18:51:26 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-02-03 18:51:10 -0500 |
| commit | da3df5b878d96ef37dcff1377ccbd097b80776d7 (patch) | |
| tree | 2ded9c48939cfbc3922e3600389872b41ef93b6a /django | |
| parent | d0a42a14c06e033922f6d51e6384cba53be887b6 (diff) | |
Fixed #8500 -- Allowed overriding the default admin site instance.
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admin/apps.py | 1 | ||||
| -rw-r--r-- | django/contrib/admin/sites.py | 14 |
2 files changed, 13 insertions, 2 deletions
diff --git a/django/contrib/admin/apps.py b/django/contrib/admin/apps.py index df7d669ab0..36c157683d 100644 --- a/django/contrib/admin/apps.py +++ b/django/contrib/admin/apps.py @@ -7,6 +7,7 @@ from django.utils.translation import gettext_lazy as _ class SimpleAdminConfig(AppConfig): """Simple AppConfig which does not do automatic discovery.""" + default_site = 'django.contrib.admin.sites.AdminSite' name = 'django.contrib.admin' verbose_name = _("Administration") diff --git a/django/contrib/admin/sites.py b/django/contrib/admin/sites.py index a3871fb534..f7d0ac0fbc 100644 --- a/django/contrib/admin/sites.py +++ b/django/contrib/admin/sites.py @@ -9,6 +9,8 @@ from django.db.models.base import ModelBase from django.http import Http404, HttpResponseRedirect from django.template.response import TemplateResponse from django.urls import NoReverseMatch, reverse +from django.utils.functional import LazyObject +from django.utils.module_loading import import_string from django.utils.text import capfirst from django.utils.translation import gettext as _, gettext_lazy from django.views.decorators.cache import never_cache @@ -518,6 +520,14 @@ class AdminSite: ], context) +class DefaultAdminSite(LazyObject): + def _setup(self): + AdminSiteClass = import_string(apps.get_app_config('admin').default_site) + self._wrapped = AdminSiteClass() + + # This global object represents the default admin site, for the common case. -# You can instantiate AdminSite in your own code to create a custom admin site. -site = AdminSite() +# You can provide your own AdminSite using the (Simple)AdminConfig.default_site +# attribute. You can also instantiate AdminSite in your own code to create a +# custom admin site. +site = DefaultAdminSite() |
