From 3921db6ec85298c6cb470305978e905ad8ff1315 Mon Sep 17 00:00:00 2001 From: nektor211 Date: Mon, 1 Jun 2020 02:04:40 +0200 Subject: [PATCH] openapi AutoSchema move FIELD_CLASS_SCHEMA_TYPE out of map_field Move FIELD_CLASS_SCHEMA_TYPE out of the map_field method so that it may be extended by a subclass easily, for example when adding a custom serializer field. --- rest_framework/schemas/openapi.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/rest_framework/schemas/openapi.py b/rest_framework/schemas/openapi.py index 9b3082822..054a01c79 100644 --- a/rest_framework/schemas/openapi.py +++ b/rest_framework/schemas/openapi.py @@ -358,6 +358,13 @@ class AutoSchema(ViewInspector): mapping['type'] = type return mapping + FIELD_CLASS_SCHEMA_TYPE = { + serializers.BooleanField: 'boolean', + serializers.JSONField: 'object', + serializers.DictField: 'object', + serializers.HStoreField: 'object', + } + def map_field(self, field): # Nested Serializers, `many` or not. @@ -492,13 +499,7 @@ class AutoSchema(ViewInspector): } # Simplest cases, default to 'string' type: - FIELD_CLASS_SCHEMA_TYPE = { - serializers.BooleanField: 'boolean', - serializers.JSONField: 'object', - serializers.DictField: 'object', - serializers.HStoreField: 'object', - } - return {'type': FIELD_CLASS_SCHEMA_TYPE.get(field.__class__, 'string')} + return {'type': self.FIELD_CLASS_SCHEMA_TYPE.get(field.__class__, 'string')} def _map_min_max(self, field, content): if field.max_value: