aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimo Tuominen2014-09-01 12:17:36 +0300
committerTimo Tuominen2014-09-01 15:02:49 +0300
commit82d4b2083292659358d5df4d03d2115576e8ae4e (patch)
tree60bf07e95e00ec8e512bd24533a5d064d5eaca74
parentb40525d8e6b3b4839c61053bc1613843d5b8b63d (diff)
downloaddjango-rest-framework-82d4b2083292659358d5df4d03d2115576e8ae4e.tar.bz2
Add subclass matching to serializer field mapping.
-rw-r--r--rest_framework/serializers.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py
index be8ad3f2..6d25161e 100644
--- a/rest_framework/serializers.py
+++ b/rest_framework/serializers.py
@@ -907,6 +907,9 @@ class ModelSerializer(Serializer):
try:
return self.field_mapping[model_field.__class__](**kwargs)
except KeyError:
+ 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 ModelField(model_field=model_field, **kwargs)
def get_validation_exclusions(self, instance=None):