mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-07-16 11:12:21 +03:00
Improve schema generation for DictField and HStoreField
Make `serializers.DictField` and `serializers.HStoreField` generate objects with `additionalProperties` defined by their `.child`.
This commit is contained in:
parent
4a1d773b8f
commit
d9dc01c1dc
|
@ -500,12 +500,17 @@ class AutoSchema(ViewInspector):
|
||||||
'format': 'binary'
|
'format': 'binary'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Also handles serializers.HStoreField,
|
||||||
|
if isinstance(field, serializers.DictField):
|
||||||
|
return {
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": self.map_field(field.child),
|
||||||
|
}
|
||||||
|
|
||||||
# Simplest cases, default to 'string' type:
|
# Simplest cases, default to 'string' type:
|
||||||
FIELD_CLASS_SCHEMA_TYPE = {
|
FIELD_CLASS_SCHEMA_TYPE = {
|
||||||
serializers.BooleanField: 'boolean',
|
serializers.BooleanField: 'boolean',
|
||||||
serializers.JSONField: 'object',
|
serializers.JSONField: 'object',
|
||||||
serializers.DictField: 'object',
|
|
||||||
serializers.HStoreField: 'object',
|
|
||||||
}
|
}
|
||||||
return {'type': FIELD_CLASS_SCHEMA_TYPE.get(field.__class__, 'string')}
|
return {'type': FIELD_CLASS_SCHEMA_TYPE.get(field.__class__, 'string')}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user