Переглянути джерело

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

Hasan 9 роки тому
батько
коміт
8c553e7d3f

+ 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)