Commit ae84b8b0 by Timo Tuominen

Traverse the method resolution order when mapping serializer fields.

parent 82d4b208
...@@ -904,11 +904,9 @@ class ModelSerializer(Serializer): ...@@ -904,11 +904,9 @@ class ModelSerializer(Serializer):
for attribute in attributes: for attribute in attributes:
kwargs.update({attribute: getattr(model_field, attribute)}) kwargs.update({attribute: getattr(model_field, attribute)})
try: for model_field_baseclass in inspect.getmro(model_field.__class__):
return self.field_mapping[model_field.__class__](**kwargs) serializer_field_class = self.field_mapping.get(model_field_baseclass)
except KeyError: if serializer_field_class:
for model_field_class, serializer_field_class in self.field_mapping.items():
if isinstance(model_field, model_field_class):
return serializer_field_class(**kwargs) return serializer_field_class(**kwargs)
return ModelField(model_field=model_field, **kwargs) return ModelField(model_field=model_field, **kwargs)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment