Проблема с декодированием файлов и сериализаторов

#django #serialization #django-rest-framework #stripe-payments

#django #сериализация #django-rest-framework #stripe-платежи

Вопрос:

В моем API, использующем Django Rest Framework, у меня есть представление на основе функций для части процесса регистрации для использования Stripe. Представление успешно отправляет все в stripe и обновляет базу данных моих сайтов соответствующей информацией, но при попытке вернуть данные сериализатора я получаю эту ошибку:

кодек ‘utf-8’ не может декодировать байт 0xff в позиции 0: недопустимый начальный байт

Предполагая, что это связано с файлами, необходимыми для идентификации личности

Вот вид:

 @api_view(['POST'])
def StripePersonalOnboard(request):
    serializer = StripePersonalSerializer(data=request.data)
    profile = get_object_or_404(Profile, user=request.user)

    if serializer.is_valid():
        phone_number = serializer.validated_data.get('phone_number')
        ss_number = serializer.validated_data.get('ss_number')
        id_front = serializer.validated_data.get('id_front')
        id_back = serializer.validated_data.get('id_back')

        try:
            stripe.api_key = settings.STRIPE_TEST_SEC_KEY

            id_front_file = stripe.File.create(
                purpose='identity_document',
                file=id_front
            )
            id_back_file = stripe.File.create(
                purpose='identity_document',
                file=id_back
            )

            stripe.Account.modify(
                profile.stripe_acc_id,
                individual= {
                        'phone': phone_number,
                        'id_number': ss_number,
                        'verification': {
                            'document': {
                                'back': id_back_file,
                                'front': id_front_file
                        }
                    }
                }
            )

            profile.stripe_id_front_tkn = id_front_file.id
            profile.stripe_id_back_tkn = id_back_file.id
            profile.save(update_fields=['stripe_id_front_tkn', 'stripe_id_back_tkn'])
            return Response(serializer.validated_data)
        
        except stripe.error.InvalidRequestError as e:
                #invalid parameters were provided
                return Response(e.error.message)
            
    else:
        return Response(serializer.errors)
  

Комментарии:

1. Какая строка вызывает эту ошибку? Что показывает трассировка стека?

2. @floatingLomas да, это когда я пытаюсь вернуть проверенные данные из сериализатора

3. Не уверен, что предложить, так как у меня действительно недостаточно информации, чтобы помочь здесь.