diff options
| author | Mark Shirley | 2013-01-08 08:40:00 -0800 |
|---|---|---|
| committer | Mark Shirley | 2013-01-08 08:40:00 -0800 |
| commit | 394a26f8330c99cc7b9297bde0d56eed7586964a (patch) | |
| tree | 315f5d7d05011e260037cd1c2b53c4a60b1d85fd /rest_framework/relations.py | |
| parent | 431ced66e49905fd76db0c36f62794dc3f42470b (diff) | |
| parent | b298bf53f310fae48083d87408d69e2d46e60671 (diff) | |
| download | django-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.py | 10 |
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) |
