aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/relations.py
diff options
context:
space:
mode:
authorMark Shirley2013-01-08 08:40:00 -0800
committerMark Shirley2013-01-08 08:40:00 -0800
commit394a26f8330c99cc7b9297bde0d56eed7586964a (patch)
tree315f5d7d05011e260037cd1c2b53c4a60b1d85fd /rest_framework/relations.py
parent431ced66e49905fd76db0c36f62794dc3f42470b (diff)
parentb298bf53f310fae48083d87408d69e2d46e60671 (diff)
downloaddjango-rest-framework-394a26f8330c99cc7b9297bde0d56eed7586964a.tar.bz2
Merge pull request #553 from maspwr/null-one-to-one
Handle ObjectDoesNotExist exceptions when serializing null reverse one-to-one
Diffstat (limited to 'rest_framework/relations.py')
-rw-r--r--rest_framework/relations.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/rest_framework/relations.py b/rest_framework/relations.py
index adc47800..5e4552b7 100644
--- a/rest_framework/relations.py
+++ b/rest_framework/relations.py
@@ -101,7 +101,10 @@ class RelatedField(WritableField):
### Regular serializer stuff...
def field_to_native(self, obj, field_name):
- value = getattr(obj, self.source or field_name)
+ try:
+ value = getattr(obj, self.source or field_name)
+ except ObjectDoesNotExist:
+ return None
return self.to_native(value)
def field_from_native(self, data, files, field_name, into):
@@ -211,7 +214,10 @@ class PrimaryKeyRelatedField(RelatedField):
pk = obj.serializable_value(self.source or field_name)
except AttributeError:
# RelatedObject (reverse relationship)
- obj = getattr(obj, self.source or field_name)
+ try:
+ obj = getattr(obj, self.source or field_name)
+ except ObjectDoesNotExist:
+ return None
return self.to_native(obj.pk)
# Forward relationship
return self.to_native(pk)