aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/fields.py
diff options
context:
space:
mode:
authorTom Christie2013-02-12 22:59:01 +0000
committerTom Christie2013-02-12 22:59:01 +0000
commitf505b2e4404a58c9d841ee96e560955eb545fede (patch)
tree5299f9170935508b8ddf4aa56ad6ff44c3958773 /rest_framework/fields.py
parent724906c516b71f3ec5bc2005c66a6145c77c3739 (diff)
downloaddjango-rest-framework-f505b2e4404a58c9d841ee96e560955eb545fede.tar.bz2
Clean up field_to_native logic
Diffstat (limited to 'rest_framework/fields.py')
-rw-r--r--rest_framework/fields.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index aa6fa3ab..327008fb 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -94,12 +94,14 @@ class Field(object):
if self.source == '*':
return self.to_native(obj)
- if self.source:
- value = obj
- for component in self.source.split('.'):
- value = get_component(value, component)
- else:
- value = get_component(obj, field_name)
+ source = self.source or field_name
+ value = obj
+
+ for component in source.split('.'):
+ value = get_component(value, component)
+ if value is None:
+ break
+
return self.to_native(value)
def to_native(self, value):