diff options
| author | Mark Aaron Shirley | 2013-01-04 21:11:03 +0100 | 
|---|---|---|
| committer | Mark Aaron Shirley | 2013-01-04 21:11:03 +0100 | 
| commit | 213981cef394c6f7603c24b9a51096ffb56f6024 (patch) | |
| tree | 356de336d49fc2552ae819009a4f0de572e8525d /rest_framework/relations.py | |
| parent | ad671022e1a43f91e0285f53bab64b7e33395eb3 (diff) | |
| download | django-rest-framework-213981cef394c6f7603c24b9a51096ffb56f6024.tar.bz2 | |
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 686dcf04..6c1d4f5b 100644 --- a/rest_framework/relations.py +++ b/rest_framework/relations.py @@ -100,7 +100,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): @@ -202,7 +205,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) | 
