diff options
| -rw-r--r-- | rest_framework/serializers.py | 11 | 
1 files changed, 5 insertions, 6 deletions
| diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index cc0e027f..01606e9c 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -438,6 +438,11 @@ class BaseSerializer(WritableField):                      raise ValidationError(self.error_messages['required'])                  return +        if self.source == '*': +            if value: +                reverted_data = self.restore_fields(value, {}) +                if not self._errors: +                    into.update(reverted_data)          else:              if value in (None, ''):                  into[(self.source or field_name)] = None @@ -452,12 +457,6 @@ class BaseSerializer(WritableField):                      is_simple_callable(getattr(obj, 'all', None))):                      obj = obj.all() -                if self.source == '*': -                    if value: -                        reverted_data = self.restore_fields(value, {}) -                        if not self._errors: -                            into.update(reverted_data) -                  kwargs = {                      'instance': obj,                      'data': value, | 
