Skip to content

Commit d9dc01c

Browse files
authored
Improve schema generation for DictField and HStoreField
Make `serializers.DictField` and `serializers.HStoreField` generate objects with `additionalProperties` defined by their `.child`.
1 parent 4a1d773 commit d9dc01c

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

rest_framework/schemas/openapi.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -500,12 +500,17 @@ def map_field(self, field):
500500
'format': 'binary'
501501
}
502502

503+
# Also handles serializers.HStoreField,
504+
if isinstance(field, serializers.DictField):
505+
return {
506+
"type": "object",
507+
"additionalProperties": self.map_field(field.child),
508+
}
509+
503510
# Simplest cases, default to 'string' type:
504511
FIELD_CLASS_SCHEMA_TYPE = {
505512
serializers.BooleanField: 'boolean',
506513
serializers.JSONField: 'object',
507-
serializers.DictField: 'object',
508-
serializers.HStoreField: 'object',
509514
}
510515
return {'type': FIELD_CLASS_SCHEMA_TYPE.get(field.__class__, 'string')}
511516

0 commit comments

Comments
 (0)