API: Allow to use uploaded files in settings fields

This commit is contained in:
Raphael Michel
2021-01-07 09:56:08 +01:00
parent 75e100f108
commit 5b81507600
11 changed files with 381 additions and 123 deletions

View File

@@ -1,5 +1,6 @@
from collections import OrderedDict
from django.core.exceptions import ValidationError
from rest_framework import serializers
@@ -52,6 +53,8 @@ class UploadedFileField(serializers.Field):
file__isnull=False,
pk=data[len("file:"):],
)
except (ValidationError, IndexError): # invalid uuid
self.fail('not_found')
except CachedFile.DoesNotExist:
self.fail('not_found')
@@ -70,7 +73,5 @@ class UploadedFileField(serializers.Field):
url = value.url
except AttributeError:
return None
request = self.context.get('request', None)
if request is not None:
return request.build_absolute_uri(url)
return url
request = self.context['request']
return request.build_absolute_uri(url)