summaryrefslogtreecommitdiff
path: root/django/contrib/admin/checks.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/contrib/admin/checks.py')
-rw-r--r--django/contrib/admin/checks.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/django/contrib/admin/checks.py b/django/contrib/admin/checks.py
index 9937273c28..94e700cf68 100644
--- a/django/contrib/admin/checks.py
+++ b/django/contrib/admin/checks.py
@@ -1,5 +1,4 @@
import collections
-import contextlib
from itertools import chain
from django.apps import apps
@@ -22,9 +21,10 @@ def _issubclass(cls, classinfo):
issubclass() variant that doesn't raise an exception if cls isn't a
class.
"""
- with contextlib.suppress(TypeError):
+ try:
return issubclass(cls, classinfo)
- return False
+ except TypeError:
+ return False
def _contains_subclass(class_path, candidate_paths):
@@ -34,9 +34,13 @@ def _contains_subclass(class_path, candidate_paths):
"""
cls = import_string(class_path)
for path in candidate_paths:
- with contextlib.suppress(ImportError, TypeError):
- if issubclass(import_string(path), cls):
- return True
+ try:
+ candidate_cls = import_string(path)
+ except ImportError:
+ # ImportErrors are raised elsewhere.
+ continue
+ if _issubclass(candidate_cls, cls):
+ return True
return False