From 55ea891fff52caaca4999282da23b11eee40fcd7 Mon Sep 17 00:00:00 2001 From: dorian Date: Sun, 28 Jul 2019 16:55:47 +0800 Subject: [PATCH] change FileField.to_representation to EAFP style --- rest_framework/fields.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index f5f0b632e..cefaf18d9 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1546,16 +1546,15 @@ class FileField(Field): return None use_url = getattr(self, 'use_url', api_settings.UPLOADED_FILES_USE_URL) - if use_url: - if not getattr(value, 'url', None): - # If the file has not been saved it may not have a URL. + try: + url = value.url + request = self.context.get('request', None) + if request is not None: + return request.build_absolute_uri(url) + return url + except AttributeError: return None - url = value.url - request = self.context.get('request', None) - if request is not None: - return request.build_absolute_uri(url) - return url return value.name