@marselabdullin

400 ошибка при передаче файла blob через rest?

Файл передается из vue.js, там обрезается картинка и передается в формате blob, однако тип поля модели в которую записывается blob - imagefield, и полагаю из -за этого выскакивает 400 ошибка, однако в сериализаторе я преобразовываю blob к imagefield, но видимо ошибка возникает раньше этого момента, так как ни views, ни serializers не пишет в логи ничего. Что в таком случае можно предпринять?

views.py:
def create(self, request, *args, **kwargs):
        if not request.data:
            logger.error("Not request.data")
            return response.Response({"result": "data can`t be a blanks"}, status.HTTP_400_BAD_REQUEST)
        logger.error(request.data)
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        self.perform_create(serializer)
        return response.Response(serializer.data, status=status.HTTP_201_CREATED)


serializers.py
def create(self, validated_data):
        logger.error(validated_data)
        user = User.objects.get(email=validated_data['email'])
        user.update(**validated_data)

        with io.BytesIO(self.context.get('view').request.FILES['image']) as stream:
            django_file = File(stream)
            user.image.save('{}_profile_image'.format(user.email), django_file)
            

        return user.save()
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 1
@bacon
Зачем столько извращений? По идеи должен работать примерно такой код
user.image = self.context.get('view').request.FILES['image']

return user.save()а это что еще такое? Надо возвращать сам объект, а не результат работы функции save

А по ошибке, дебажить, ловить места где она возникает
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы