def test_should_dict_convert_dict():
assert_conversion(serializers.DictField, DictType)
python类DictField()的实例源码
def get_fields(self):
field_mapping = OrderedDict()
for key, value in self.instance.items():
if key == 'node_class':
field_mapping['to'] = serializers.CharField(default=value.__label__)
elif isinstance(value, RelationshipMeta):
field_mapping['meta'] = serializers.DictField(
child=serializers.CharField(),
default={k: v.default for k, v in value.__dict__.items() if isinstance(v, properties.Property)})
elif key == 'direction':
field_mapping[key] = serializers.IntegerField(default=value)
elif key == 'relation_type':
field_mapping[key] = serializers.CharField(default=value)
return field_mapping
def fallback_schema_from_field(self, field):
""" Fallback schema for field that isn't inspected properly by DRF
and probably won't land in upstream canon due to its hacky nature only for doc purposes
"""
title = force_text(field.label) if field.label else ''
description = force_text(field.help_text) if field.help_text else ''
# since we can't really inspect dictfield and jsonfield, at least display object as type
# instead of string
if isinstance(field, (serializers.DictField, serializers.JSONField)):
return coreschema.Object(
properties={},
title=title,
description=description
)