aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rest_framework/serializers.py11
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,