возникают проблемы с сериализацией строки во время оператора try / исключением.
здесь у меня есть конечная точка, которая вызывает другую функцию refund
ответ, который я получаю от этой функции, которую я пытаюсь сериализовать.
class RefundOrder(APIView):
def post(self, request, **kwargs):
print('test')
body_unicode = request.body.decode('utf-8')
body_data = json.loads(body_unicode)
amount = body_data['amount']
tenant = get_object_or_404(Tenant, pk=kwargs['tenant_id'])
refund = SquareGateway(tenant).refund(amount)
serializer = RefundSerializer(refund)
return Response(serializer.data)
Эта функция вызывается в конечной точке поста.я добавил его в оператор try для обработки ошибок из square api.если вызов API завершится неудачно, я хочу вернуть ошибку, если она одна, иначе сериализовать эти данные.
def refund(self, order, amount, reason):
try:
response = self.client.transaction().create_refund(stuff)
refund = Refund(
order=order,
amount=response.refund.amount_money.amount,
)
refund.save()
return refund
except ApiException as e:
return json.loads(e.body)['errors'][0]['detail']
это возврат средств
class RefundSerializer(serializers.ModelSerializer):
class Meta:
model = Refund
fields = ('id', 'amount')
сериализация строки не выдает ошибку, она просто не возвращает сообщение об ошибке, которое я возвращаю. В настоящее время она возвращает пустой сериализованный объект.