aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/serializers.py
diff options
context:
space:
mode:
authorTom Christie2014-01-15 08:53:23 +0000
committerTom Christie2014-01-15 08:53:23 +0000
commite9fda70b4ac86badbd5297f857126121472b7ec6 (patch)
tree161891750090c216d2d1c16dc0dc3b9a649f8220 /rest_framework/serializers.py
parent9d6129a95f896f5bc0c81800e01f136d59eb60cb (diff)
downloaddjango-rest-framework-e9fda70b4ac86badbd5297f857126121472b7ec6.tar.bz2
Nicer write_only fields implementation. Closes #1355
Diffstat (limited to 'rest_framework/serializers.py')
-rw-r--r--rest_framework/serializers.py10
1 files changed, 4 insertions, 6 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py
index 414a769f..536b040b 100644
--- a/rest_framework/serializers.py
+++ b/rest_framework/serializers.py
@@ -346,14 +346,12 @@ class BaseSerializer(WritableField):
continue
field.initialize(parent=self, field_name=field_name)
key = self.get_field_key(field_name)
- try:
- value = field.field_to_native(obj, field_name)
- except IgnoreFieldException:
- continue
+ value = field.field_to_native(obj, field_name)
method = getattr(self, 'transform_%s' % field_name, None)
if callable(method):
value = method(obj, value)
- ret[key] = value
+ if not getattr(field, 'write_only', False):
+ ret[key] = value
ret.fields[key] = self.augment_field(field, field_name, key, value)
return ret
@@ -389,7 +387,7 @@ class BaseSerializer(WritableField):
across relationships.
"""
if self.write_only:
- raise IgnoreFieldException()
+ return None
if self.source == '*':
return self.to_native(obj)