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.
This commit is contained in:
nektor211 2020-06-01 02:04:40 +02:00 committed by Pavel Taufer
parent acbd9d8222
commit 3921db6ec8

View File

@ -358,6 +358,13 @@ class AutoSchema(ViewInspector):
mapping['type'] = type mapping['type'] = type
return mapping return mapping
FIELD_CLASS_SCHEMA_TYPE = {
serializers.BooleanField: 'boolean',
serializers.JSONField: 'object',
serializers.DictField: 'object',
serializers.HStoreField: 'object',
}
def map_field(self, field): def map_field(self, field):
# Nested Serializers, `many` or not. # Nested Serializers, `many` or not.
@ -492,13 +499,7 @@ class AutoSchema(ViewInspector):
} }
# Simplest cases, default to 'string' type: # Simplest cases, default to 'string' type:
FIELD_CLASS_SCHEMA_TYPE = { return {'type': self.FIELD_CLASS_SCHEMA_TYPE.get(field.__class__, 'string')}
serializers.BooleanField: 'boolean',
serializers.JSONField: 'object',
serializers.DictField: 'object',
serializers.HStoreField: 'object',
}
return {'type': FIELD_CLASS_SCHEMA_TYPE.get(field.__class__, 'string')}
def _map_min_max(self, field, content): def _map_min_max(self, field, content):
if field.max_value: if field.max_value: