Browse Source

Fixed #25688 -- Made admin.register() disallow an empty list of models.

Hasan 9 years ago
parent
commit
8c553e7d3f
2 changed files with 7 additions and 0 deletions
  1. 3 0
      django/contrib/admin/decorators.py
  2. 4 0
      tests/admin_registration/tests.py

+ 3 - 0
django/contrib/admin/decorators.py

@@ -14,6 +14,9 @@ def register(*models, **kwargs):
     from django.contrib.admin.sites import site, AdminSite
 
     def _model_admin_wrapper(admin_class):
+        if not models:
+            raise ValueError('At least one model must be passed to register.')
+
         admin_site = kwargs.pop('site', site)
 
         if not isinstance(admin_site, AdminSite):

+ 4 - 0
tests/admin_registration/tests.py

@@ -133,3 +133,7 @@ class TestRegistrationDecorator(SimpleTestCase):
     def test_custom_site_not_an_admin_site(self):
         self.assertRaisesMessage(ValueError, 'site must subclass AdminSite',
             register(Person, site=Traveler), NameAdmin)
+
+    def test_empty_models_list_registration_fails(self):
+        with self.assertRaisesMessage(ValueError, 'At least one model must be passed to register.'):
+            register()(NameAdmin)