From e943e64914572f11f77ae1cca45864e7c06caaff Mon Sep 17 00:00:00 2001 From: Ram Rachum Date: Fri, 12 Jun 2020 23:23:28 +0300 Subject: [PATCH] Fix exception causes in relations.py --- rest_framework/relations.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rest_framework/relations.py b/rest_framework/relations.py index 3a2a8fb4b5..a6923d9f3d 100644 --- a/rest_framework/relations.py +++ b/rest_framework/relations.py @@ -308,12 +308,12 @@ def get_object(self, view_name, view_args, view_kwargs): try: return queryset.get(**lookup_kwargs) - except ValueError: + except ValueError as e: exc = ObjectValueError(str(sys.exc_info()[1])) - raise exc.with_traceback(sys.exc_info()[2]) - except TypeError: + raise exc.with_traceback(sys.exc_info()[2]) from e + except TypeError as e: exc = ObjectTypeError(str(sys.exc_info()[1])) - raise exc.with_traceback(sys.exc_info()[2]) + raise exc.with_traceback(sys.exc_info()[2]) from e def get_url(self, obj, view_name, request, format): """ @@ -391,7 +391,7 @@ def to_representation(self, value): # Return the hyperlink, or error if incorrectly configured. try: url = self.get_url(value, self.view_name, request, format) - except NoReverseMatch: + except NoReverseMatch as e: msg = ( 'Could not resolve URL for hyperlinked relationship using ' 'view name "%s". You may have failed to include the related ' @@ -405,7 +405,7 @@ def to_representation(self, value): "was %s, which may be why it didn't match any " "entries in your URL conf." % value_string ) - raise ImproperlyConfigured(msg % self.view_name) + raise ImproperlyConfigured(msg % self.view_name) from e if url is None: return None