def get_fields(self):
field_mapping = OrderedDict()
# Normal properties
for field, property_class in self.instance.defined_properties(aliases=False, rels=False).items():
# TODO: Support AliasField - check for __call__ in _field_mapping.
field_mapping['id'] = serializers.IntegerField(default=self.instance.id)
field_mapping['label'] = serializers.CharField(default=self.instance.__label__)
field_mapping.update({
field: self.get_serializer_field(property_class, **self._get_default_field_kwargs(property_class))
})
# Relationships
for field, property_class in self.instance.defined_properties(aliases=False, properties=False).items():
field_mapping.update({
field: RelationshipSerializer(property_class.definition, many=not isinstance(property_class, One))
})
return field_mapping
评论列表
文章目录