aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework
diff options
context:
space:
mode:
authorTom Christie2014-10-08 12:36:28 +0100
committerTom Christie2014-10-08 12:36:28 +0100
commit28f3b314f12cbff33c55602c2c5f5f5cce956171 (patch)
treef7c2db4d2eb665a498759e0f87f24f1682740fd4 /rest_framework
parent0cbb57b40fdb073c7ca09c9d1078926260c646db (diff)
downloaddjango-rest-framework-28f3b314f12cbff33c55602c2c5f5f5cce956171.tar.bz2
.validate() returning validated data. transform_<field> hooks.
Diffstat (limited to 'rest_framework')
-rw-r--r--rest_framework/serializers.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py
index e7cd50d6..8513428c 100644
--- a/rest_framework/serializers.py
+++ b/rest_framework/serializers.py
@@ -299,7 +299,8 @@ class Serializer(BaseSerializer):
value = self.to_internal_value(data)
try:
self.run_validators(value)
- self.validate(value)
+ value = self.validate(value)
+ assert value is not None, '.validate() should return the validated data'
except ValidationError as exc:
raise ValidationError({
api_settings.NON_FIELD_ERRORS_KEY: exc.messages
@@ -341,7 +342,12 @@ class Serializer(BaseSerializer):
fields = [field for field in self.fields.values() if not field.write_only]
for field in fields:
- ret[field.field_name] = field.get_field_representation(instance)
+ value = field.get_field_representation(instance)
+ transform_method = getattr(self, 'transform_' + field.field_name, None)
+ if transform_method is not None:
+ value = transform_method(value)
+
+ ret[field.field_name] = value
return ret