aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/serializers.py
diff options
context:
space:
mode:
authorXavier Ordoquy2014-03-31 07:49:23 +0200
committerXavier Ordoquy2014-03-31 07:49:23 +0200
commit73cd4e236f0c119f5b6e0baad1259142fe37ace1 (patch)
treee6ba3be5fd3df1e9c82434f8cb1856ad6a8f1ad4 /rest_framework/serializers.py
parent2a27674a7971a60050d4530a0852a864b2065adb (diff)
parentf5fc6937ece8c2bc70088979cc19c2c0a660c7a0 (diff)
downloaddjango-rest-framework-73cd4e236f0c119f5b6e0baad1259142fe37ace1.tar.bz2
Merge pull request #1477 from vlastv/patch-1
Writable star source with instance
Diffstat (limited to 'rest_framework/serializers.py')
-rw-r--r--rest_framework/serializers.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py
index 88972e25..cb7539e0 100644
--- a/rest_framework/serializers.py
+++ b/rest_framework/serializers.py
@@ -438,16 +438,6 @@ class BaseSerializer(WritableField):
raise ValidationError(self.error_messages['required'])
return
- # Set the serializer object if it exists
- obj = get_component(self.parent.object, self.source or field_name) if self.parent.object else None
-
- # If we have a model manager or similar object then we need
- # to iterate through each instance.
- if (self.many and
- not hasattr(obj, '__iter__') and
- is_simple_callable(getattr(obj, 'all', None))):
- obj = obj.all()
-
if self.source == '*':
if value:
reverted_data = self.restore_fields(value, {})
@@ -457,6 +447,16 @@ class BaseSerializer(WritableField):
if value in (None, ''):
into[(self.source or field_name)] = None
else:
+ # Set the serializer object if it exists
+ obj = get_component(self.parent.object, self.source or field_name) if self.parent.object else None
+
+ # If we have a model manager or similar object then we need
+ # to iterate through each instance.
+ if (self.many and
+ not hasattr(obj, '__iter__') and
+ is_simple_callable(getattr(obj, 'all', None))):
+ obj = obj.all()
+
kwargs = {
'instance': obj,
'data': value,