Я использую boto3 для загрузки файлов на S3 и сохранения их пути в FileField.
class SomeFile(models.Model):
file = models.FileField(upload_to='some_folder', max_length=400, blank=True, null=True)
Для приведенной выше модели для создания записи работает следующий код.
ff = SomeFile(file='file path in S3')
ff.full_clean()
ff.save()
Теперь, когда я использую ModelSerializer, чтобы сделать то же самое.
class SomeFileSerializer(serializers.ModelSerializer):
class Meta:
model = SomeFile
fields = ('file')
Я получаю эту ошибку после запуска кода ниже
rest_framework.exceptions.ValidationError: {'file': [ErrorDetail(string='Отправленные данные не были файлом. Проверьте тип кодировки в форме.', code='invalid')]}
serializer = SomeFileSerializer(data={'file': 'file path to S3'})
serializer.is_valid(raise_exception=True)
Мне нужна помощь в настройке сериализатора для принятия пути к файлу без фактического наличия файла.
urlfield
? сохраните файлы с функциями обработчика AWS, и ответ будет подписанным URL-адресом, который вы можете сохранить вurlfield
- person ans2human   schedule 13.01.2020