diff --git a/django/utils/datastructures.py b/django/utils/datastructures.py index b5858b8076..51a586d152 100644 --- a/django/utils/datastructures.py +++ b/django/utils/datastructures.py @@ -327,7 +327,10 @@ class CaseInsensitiveMapping(Mapping): @staticmethod def _unpack_items(data): - if isinstance(data, Mapping): + # Explicitly test for dict first as the common case for performance, + # avoiding abc's __instancecheck__ and _abc_instancecheck for the + # general Mapping case. + if isinstance(data, (dict, Mapping)): yield from data.items() return for i, elem in enumerate(data):