Commit 28f3b314 by Tom Christie

.validate() returning validated data. transform_<field> hooks.

parent 0cbb57b4
...@@ -299,7 +299,8 @@ class Serializer(BaseSerializer): ...@@ -299,7 +299,8 @@ class Serializer(BaseSerializer):
value = self.to_internal_value(data) value = self.to_internal_value(data)
try: try:
self.run_validators(value) 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: except ValidationError as exc:
raise ValidationError({ raise ValidationError({
api_settings.NON_FIELD_ERRORS_KEY: exc.messages api_settings.NON_FIELD_ERRORS_KEY: exc.messages
...@@ -341,7 +342,12 @@ class Serializer(BaseSerializer): ...@@ -341,7 +342,12 @@ class Serializer(BaseSerializer):
fields = [field for field in self.fields.values() if not field.write_only] fields = [field for field in self.fields.values() if not field.write_only]
for field in fields: 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 return ret
......
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