From f505b2e4404a58c9d841ee96e560955eb545fede Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Tue, 12 Feb 2013 22:59:01 +0000 Subject: Clean up field_to_native logic --- rest_framework/fields.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'rest_framework') 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): -- cgit v1.2.3