aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/fields.py
diff options
context:
space:
mode:
Diffstat (limited to 'rest_framework/fields.py')
-rw-r--r--rest_framework/fields.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index 29940946..f610d6aa 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -71,6 +71,8 @@ class Field(object):
value = obj
for component in self.source.split('.'):
value = getattr(value, component)
+ if is_simple_callable(value):
+ value = value()
else:
value = getattr(obj, field_name)
return self.to_native(value)
@@ -238,6 +240,9 @@ class RelatedField(WritableField):
return self.to_native(value)
def field_from_native(self, data, field_name, into):
+ if self.readonly:
+ return
+
value = data.get(field_name)
into[(self.source or field_name) + '_id'] = self.from_native(value)