From 95cdf9dc6627135f3893095892816eb3f2785e2e Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Thu, 6 Jul 2023 11:29:16 +0200 Subject: [PATCH] Used AdminSite.is_registered() where appropriate. --- django/contrib/admin/sites.py | 4 ++-- django/contrib/admin/utils.py | 3 +-- django/contrib/admin/widgets.py | 6 +++--- tests/admin_ordering/tests.py | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/django/contrib/admin/sites.py b/django/contrib/admin/sites.py index 2e400c2e19..1e289876f8 100644 --- a/django/contrib/admin/sites.py +++ b/django/contrib/admin/sites.py @@ -120,7 +120,7 @@ class AdminSite: % model.__name__ ) - if model in self._registry: + if self.is_registered(model): registered_admin = str(self._registry[model]) msg = "The model %s is already registered " % model.__name__ if registered_admin.endswith(".ModelAdmin"): @@ -156,7 +156,7 @@ class AdminSite: if isinstance(model_or_iterable, ModelBase): model_or_iterable = [model_or_iterable] for model in model_or_iterable: - if model not in self._registry: + if not self.is_registered(model): raise NotRegistered("The model %s is not registered" % model.__name__) del self._registry[model] diff --git a/django/contrib/admin/utils.py b/django/contrib/admin/utils.py index 5e6a400b6c..bb5f950122 100644 --- a/django/contrib/admin/utils.py +++ b/django/contrib/admin/utils.py @@ -139,12 +139,11 @@ def get_deleted_objects(objs, request, admin_site): def format_callback(obj): model = obj.__class__ - has_admin = model in admin_site._registry opts = obj._meta no_edit_link = "%s: %s" % (capfirst(opts.verbose_name), obj) - if has_admin: + if admin_site.is_registered(model): if not admin_site._registry[model].has_delete_permission(request, obj): perms_needed.add(opts.verbose_name) try: diff --git a/django/contrib/admin/widgets.py b/django/contrib/admin/widgets.py index 5e3416bc28..c7a79f520b 100644 --- a/django/contrib/admin/widgets.py +++ b/django/contrib/admin/widgets.py @@ -145,7 +145,7 @@ class ForeignKeyRawIdWidget(forms.TextInput): def get_context(self, name, value, attrs): context = super().get_context(name, value, attrs) rel_to = self.rel.model - if rel_to in self.admin_site._registry: + if self.admin_site.is_registered(rel_to): # The related object is registered with the same AdminSite related_url = reverse( "admin:%s_%s_changelist" @@ -222,7 +222,7 @@ class ManyToManyRawIdWidget(ForeignKeyRawIdWidget): def get_context(self, name, value, attrs): context = super().get_context(name, value, attrs) - if self.rel.model in self.admin_site._registry: + if self.admin_site.is_registered(self.rel.model): # The related object is registered with the same AdminSite context["widget"]["attrs"]["class"] = "vManyToManyRawIdAdminField" return context @@ -268,7 +268,7 @@ class RelatedFieldWidgetWrapper(forms.Widget): # Backwards compatible check for whether a user can add related # objects. if can_add_related is None: - can_add_related = rel.model in admin_site._registry + can_add_related = admin_site.is_registered(rel.model) self.can_add_related = can_add_related # XXX: The UX does not support multiple selected values. multiple = getattr(widget, "allow_multiple_selected", False) diff --git a/tests/admin_ordering/tests.py b/tests/admin_ordering/tests.py index d79e747765..486e222d01 100644 --- a/tests/admin_ordering/tests.py +++ b/tests/admin_ordering/tests.py @@ -148,7 +148,7 @@ class TestRelatedFieldsAdminOrdering(TestCase): def tearDown(self): site.unregister(Song) - if Band in site._registry: + if site.is_registered(Band): site.unregister(Band) def check_ordering_of_field_choices(self, correct_ordering):