Как получить доступ к массиву файлов в запросе с помощью Django Rest Framework

Я отправляю запрос из React frontend в Python backend, в этом запросе я отправляю FormData() с массивом изображений, вот так:

const data = new FormData()
images.forEach(image => {
    data.append('images', image.arquivo)
})
data.append('product', JSON.stringify(product))
return recuperarInstanciaAxios(true).post(`${recuperarUrlBackend()}/products/`, data)

Но я не могу получить доступ к этому массиву изображений в Python. Через PyCharm evaluate, request.FILES показывает мне dict с массивом 'images' внутри. Но когда я делаю request.FILES['images'], он возвращает мне один файл. Вот код на python:

def create(self, request):
    try:
        productData = json.loads(request.data['product'])
        serializer = ProductSerializer(data=productData )
        if serializer.is_valid():
            product = serializer.save()
            files = request.FILES['images']
            for image in files:
                product_image= {'image': image, 'product': product.id}
                image_serializer = ProductImage(data=product_image)
                if image_serializer .is_valid():
                    image_serializer .save()
                else:
                    raise IntegrityError('Error :' +
                                         serializer.errors.__str__())
            return Response(serializer.data,
                            status=status.HTTP_201_CREATED)
        else:
            raise IntegrityError('Error:' +
                                 serializer.errors.__str__())

    except IntegrityError as exc:
        print(exc)
        return Response(exc.__str__(),
                        status.HTTP_412_PRECONDITION_FAILED)

Выдает ошибку, потому что файлы не итерируемы. Может я неправильно обращаюсь к массиву?

Думаю, проблема в том, как вы формируете переменную "files", должно быть что-то вроде этого:

files = request.FILES.getlist('file_field')

полеfile_field - это имя вашего html-файла

Вернуться на верх