|
123456789101112131415161718192021222324252627282930 |
- def register(*models, site=None):
- """
- Register the given model(s) classes and wrapped ModelAdmin class with
- admin site:
-
- @register(Author)
- class AuthorAdmin(admin.ModelAdmin):
- pass
-
- The `site` kwarg is an admin site to use instead of the default admin site.
- """
- from django.contrib.admin import ModelAdmin
- from django.contrib.admin.sites import site as default_site, AdminSite
-
- def _model_admin_wrapper(admin_class):
- if not models:
- raise ValueError('At least one model must be passed to register.')
-
- admin_site = site or default_site
-
- if not isinstance(admin_site, AdminSite):
- raise ValueError('site must subclass AdminSite')
-
- if not issubclass(admin_class, ModelAdmin):
- raise ValueError('Wrapped class must subclass ModelAdmin.')
-
- admin_site.register(models, admin_class=admin_class)
-
- return admin_class
- return _model_admin_wrapper
|