Почему я получаю ошибку Unsupported media type "application/json" в запросе?

Я использую Postman для тестирования api. Мои локальные модульные тесты проходят. Но когда я использую тот же запрос в Postman, я получаю

{
    "errors": [
        {
            "detail": "Unsupported media type \"application/json\" in request.",
            "status": "415",
            "source": {
                "pointer": "/data"
            },
            "code": "unsupported_media_type"
        }
    ]
}

Используя точку останова, получаю такой результат при распаковке request.data в View. Я убедился, что установил application/json в заголовке Content-Type, и даже указал его в качестве парсера. Я все равно получаю ошибку. Можете ли вы понять, почему?

enter image description here enter image description here enter image description here

Часть кода, где все ломается:

class ProvisionCustomerView(APIView):
    permission_classes = [IsAuthenticated]
    serializer_class = ProvisionCustomerSerializer

    def post(self, request):
        customer_data = request.data

При использовании postman, request.data возвращает:

*** rest_framework.exceptions.UnsupportedMediaType: Unsupported media type "application/json" in request.

Хотя это прекрасно работает в модульном тесте.

Оказалось, что причина в том, что я должен был использовать application/vnd.api+json в заголовке Content-Type. Один из членов команды переназначил переменную. Совет: дважды проверьте свой файл настроек!

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