~ubuntu-branches/debian/sid/python-django/sid

« back to all changes in this revision

Viewing changes to django/contrib/admin/decorators.py

  • Committer: Package Import Robot
  • Author(s): Raphaël Hertzog
  • Date: 2014-09-17 14:15:11 UTC
  • mfrom: (1.3.17) (6.2.18 experimental)
  • Revision ID: package-import@ubuntu.com-20140917141511-icneokthe9ww5sk4
Tags: 1.7-2
* Release to unstable.
* Add a migrate-south sample script to help users apply their South
  migrations. Thanks to Brian May.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
def register(*models, **kwargs):
 
2
    """
 
3
    Registers the given model(s) classes and wrapped ModelAdmin class with
 
4
    admin site:
 
5
 
 
6
    @register(Author)
 
7
    class AuthorAdmin(admin.ModelAdmin):
 
8
        pass
 
9
 
 
10
    A kwarg of `site` can be passed as the admin site, otherwise the default
 
11
    admin site will be used.
 
12
    """
 
13
    from django.contrib.admin import ModelAdmin
 
14
    from django.contrib.admin.sites import site, AdminSite
 
15
 
 
16
    def _model_admin_wrapper(admin_class):
 
17
        admin_site = kwargs.pop('site', site)
 
18
 
 
19
        if not isinstance(admin_site, AdminSite):
 
20
            raise ValueError('site must subclass AdminSite')
 
21
 
 
22
        if not issubclass(admin_class, ModelAdmin):
 
23
            raise ValueError('Wrapped class must subclass ModelAdmin.')
 
24
 
 
25
        admin_site.register(models, admin_class=admin_class)
 
26
 
 
27
        return admin_class
 
28
    return _model_admin_wrapper