mirror of
https://github.com/django/django.git
synced 2025-07-04 01:39:20 +00:00
newforms-admin: Added autodiscover functionality to django.contrib.admin. This makes the admin aware of per-app admin.py modules and does an import on them when explicitly called. Docs show how this is used. Fixed #6003, #6776, #6776.
git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@7872 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
84541cd244
commit
2e72445fce
@ -1,3 +1,16 @@
|
|||||||
from django.contrib.admin.options import ModelAdmin, HORIZONTAL, VERTICAL
|
from django.contrib.admin.options import ModelAdmin, HORIZONTAL, VERTICAL
|
||||||
from django.contrib.admin.options import StackedInline, TabularInline
|
from django.contrib.admin.options import StackedInline, TabularInline
|
||||||
from django.contrib.admin.sites import AdminSite, site
|
from django.contrib.admin.sites import AdminSite, site
|
||||||
|
|
||||||
|
def autodiscover():
|
||||||
|
"""
|
||||||
|
Auto-discover INSTALLED_APPS admin.py modules and fail silently when
|
||||||
|
not present. This forces an import on them to register any admin bits they
|
||||||
|
may want.
|
||||||
|
"""
|
||||||
|
from django.conf import settings
|
||||||
|
for app in settings.INSTALLED_APPS:
|
||||||
|
try:
|
||||||
|
__import__("%s.admin" % app)
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
|
@ -610,10 +610,15 @@ In this example, we register the default ``AdminSite`` instance
|
|||||||
from django.conf.urls.defaults import *
|
from django.conf.urls.defaults import *
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
|
||||||
|
admin.autodiscover()
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
('^admin/(.*)', admin.site.root),
|
('^admin/(.*)', admin.site.root),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Above we used ``admin.autodiscover()`` to automatically load the
|
||||||
|
``INSTALLED_APPS`` admin.py modules.
|
||||||
|
|
||||||
In this example, we register the ``AdminSite`` instance
|
In this example, we register the ``AdminSite`` instance
|
||||||
``myproject.admin.admin_site`` at the URL ``/myadmin/`` ::
|
``myproject.admin.admin_site`` at the URL ``/myadmin/`` ::
|
||||||
|
|
||||||
@ -625,6 +630,10 @@ In this example, we register the ``AdminSite`` instance
|
|||||||
('^myadmin/(.*)', admin_site.root),
|
('^myadmin/(.*)', admin_site.root),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
There is really no need to use autodiscover when using your own ``AdminSite``
|
||||||
|
instance since you will likely be importing all the per-app admin.py modules
|
||||||
|
in your ``myproject.admin`` module.
|
||||||
|
|
||||||
Note that the regular expression in the URLpattern *must* group everything in
|
Note that the regular expression in the URLpattern *must* group everything in
|
||||||
the URL that comes after the URL root -- hence the ``(.*)`` in these examples.
|
the URL that comes after the URL root -- hence the ``(.*)`` in these examples.
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user