diff options
| author | Tom Christie | 2014-10-08 12:36:28 +0100 |
|---|---|---|
| committer | Tom Christie | 2014-10-08 12:36:28 +0100 |
| commit | 28f3b314f12cbff33c55602c2c5f5f5cce956171 (patch) | |
| tree | f7c2db4d2eb665a498759e0f87f24f1682740fd4 /rest_framework/serializers.py | |
| parent | 0cbb57b40fdb073c7ca09c9d1078926260c646db (diff) | |
| download | django-rest-framework-28f3b314f12cbff33c55602c2c5f5f5cce956171.tar.bz2 | |
.validate() returning validated data. transform_<field> hooks.
Diffstat (limited to 'rest_framework/serializers.py')
| -rw-r--r-- | rest_framework/serializers.py | 10 |
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 |
