From 98b4b99d9579a85c28ae662d83b367e47cb7836c Mon Sep 17 00:00:00 2001 From: Laurent Tramoy Date: Thu, 22 Sep 2022 15:58:09 +0200 Subject: [PATCH] fix: #816 NullBooleanField does not exist in DRF >= 3.14.0 --- drf_spectacular/openapi.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drf_spectacular/openapi.py b/drf_spectacular/openapi.py index 5d51e737..9f9f4982 100644 --- a/drf_spectacular/openapi.py +++ b/drf_spectacular/openapi.py @@ -811,7 +811,12 @@ def _map_serializer_field(self, field, direction, bypass_extensions=False): return append_meta(self._map_response_type_hint(method), meta) - if isinstance(field, (serializers.BooleanField, serializers.NullBooleanField)): + if hasattr(serializers, "NullBooleanField"): + boolean_field_classes = (serializers.BooleanField, serializers.NullBooleanField) + else: + boolean_field_classes = (serializers.BooleanField,) + + if isinstance(field, boolean_field_classes): return append_meta(build_basic_type(OpenApiTypes.BOOL), meta) if isinstance(field, serializers.JSONField):