mirror of
https://github.com/django/django.git
synced 2025-10-31 09:41:08 +00:00
Fixed #9602 -- Added AdminSite.get_model_admin().
This allows retrieving an admin class for the given model class without using internal attributes.
This commit is contained in:
@@ -22,13 +22,13 @@ class TestRegistration(SimpleTestCase):
|
||||
|
||||
def test_bare_registration(self):
|
||||
self.site.register(Person)
|
||||
self.assertIsInstance(self.site._registry[Person], admin.ModelAdmin)
|
||||
self.assertIsInstance(self.site.get_model_admin(Person), admin.ModelAdmin)
|
||||
self.site.unregister(Person)
|
||||
self.assertEqual(self.site._registry, {})
|
||||
|
||||
def test_registration_with_model_admin(self):
|
||||
self.site.register(Person, NameAdmin)
|
||||
self.assertIsInstance(self.site._registry[Person], NameAdmin)
|
||||
self.assertIsInstance(self.site.get_model_admin(Person), NameAdmin)
|
||||
self.site.unregister(Person)
|
||||
self.assertEqual(self.site._registry, {})
|
||||
|
||||
@@ -57,22 +57,28 @@ class TestRegistration(SimpleTestCase):
|
||||
|
||||
def test_registration_with_star_star_options(self):
|
||||
self.site.register(Person, search_fields=["name"])
|
||||
self.assertEqual(self.site._registry[Person].search_fields, ["name"])
|
||||
self.assertEqual(self.site.get_model_admin(Person).search_fields, ["name"])
|
||||
|
||||
def test_get_model_admin_unregister_model(self):
|
||||
msg = "The model Person is not registered."
|
||||
with self.assertRaisesMessage(admin.sites.NotRegistered, msg):
|
||||
self.site.get_model_admin(Person)
|
||||
|
||||
def test_star_star_overrides(self):
|
||||
self.site.register(
|
||||
Person, NameAdmin, search_fields=["name"], list_display=["__str__"]
|
||||
)
|
||||
self.assertEqual(self.site._registry[Person].search_fields, ["name"])
|
||||
self.assertEqual(self.site._registry[Person].list_display, ["__str__"])
|
||||
self.assertTrue(self.site._registry[Person].save_on_top)
|
||||
person_admin = self.site.get_model_admin(Person)
|
||||
self.assertEqual(person_admin.search_fields, ["name"])
|
||||
self.assertEqual(person_admin.list_display, ["__str__"])
|
||||
self.assertIs(person_admin.save_on_top, True)
|
||||
|
||||
def test_iterable_registration(self):
|
||||
self.site.register([Person, Place], search_fields=["name"])
|
||||
self.assertIsInstance(self.site._registry[Person], admin.ModelAdmin)
|
||||
self.assertEqual(self.site._registry[Person].search_fields, ["name"])
|
||||
self.assertIsInstance(self.site._registry[Place], admin.ModelAdmin)
|
||||
self.assertEqual(self.site._registry[Place].search_fields, ["name"])
|
||||
self.assertIsInstance(self.site.get_model_admin(Person), admin.ModelAdmin)
|
||||
self.assertEqual(self.site.get_model_admin(Person).search_fields, ["name"])
|
||||
self.assertIsInstance(self.site.get_model_admin(Place), admin.ModelAdmin)
|
||||
self.assertEqual(self.site.get_model_admin(Place).search_fields, ["name"])
|
||||
self.site.unregister([Person, Place])
|
||||
self.assertEqual(self.site._registry, {})
|
||||
|
||||
@@ -116,18 +122,26 @@ class TestRegistrationDecorator(SimpleTestCase):
|
||||
|
||||
def test_basic_registration(self):
|
||||
register(Person)(NameAdmin)
|
||||
self.assertIsInstance(self.default_site._registry[Person], admin.ModelAdmin)
|
||||
self.assertIsInstance(
|
||||
self.default_site.get_model_admin(Person), admin.ModelAdmin
|
||||
)
|
||||
self.default_site.unregister(Person)
|
||||
|
||||
def test_custom_site_registration(self):
|
||||
register(Person, site=self.custom_site)(NameAdmin)
|
||||
self.assertIsInstance(self.custom_site._registry[Person], admin.ModelAdmin)
|
||||
self.assertIsInstance(
|
||||
self.custom_site.get_model_admin(Person), admin.ModelAdmin
|
||||
)
|
||||
|
||||
def test_multiple_registration(self):
|
||||
register(Traveler, Place)(NameAdmin)
|
||||
self.assertIsInstance(self.default_site._registry[Traveler], admin.ModelAdmin)
|
||||
self.assertIsInstance(
|
||||
self.default_site.get_model_admin(Traveler), admin.ModelAdmin
|
||||
)
|
||||
self.default_site.unregister(Traveler)
|
||||
self.assertIsInstance(self.default_site._registry[Place], admin.ModelAdmin)
|
||||
self.assertIsInstance(
|
||||
self.default_site.get_model_admin(Place), admin.ModelAdmin
|
||||
)
|
||||
self.default_site.unregister(Place)
|
||||
|
||||
def test_wrapped_class_not_a_model_admin(self):
|
||||
|
||||
Reference in New Issue
Block a user