Невозможно получить доступ к переданному файлу из swagger ui внутри django debugger(pdb)

создал api и добавил swagger к api с помощью пакета

drf-yasg

текущая обновленная версия 1.20.0, затем добавлен код следующего содержания

success_res_data = openapi.Schema(type=openapi.TYPE_OBJECT, properties={'status': openapi.Schema(type=openapi.TYPE_NUMBER, title='200'), 'success': openapi.Schema(type=openapi.TYPE_OBJECT, properties={'message_header': openapi.Schema(type=openapi.TYPE_STRING), 'message': openapi.Schema(type=openapi.TYPE_STRING)})})
error_res_data = openapi.Schema(type=openapi.TYPE_OBJECT, properties={'status': openapi.Schema(type=openapi.TYPE_NUMBER, title='400'), 'error': openapi.Schema(type=openapi.TYPE_OBJECT, properties={'message_header': openapi.Schema(type=openapi.TYPE_STRING), 'message': openapi.Schema(type=openapi.TYPE_STRING)})})

invitation_file = openapi.Parameter('invitation_file', openapi.IN_QUERY, type=openapi.TYPE_FILE, required=True)

@swagger_auto_schema(
    manual_parameters=[invitation_file], operation_description="description",
    responses={200: success_res_data, 400: error_res_data}
)
def post(self, request):
    invitation_file = request.data.get('invitation_file', None)

переменная invitation_file возвращает None, даже если мы передаем файл из front-end'а

После небольшого исследования и проверки того же api в postman, изменил код с вышеприведенного на

success_res_data = openapi.Schema(type=openapi.TYPE_OBJECT, properties={'status': openapi.Schema(type=openapi.TYPE_NUMBER, title='200'), 'success': openapi.Schema(type=openapi.TYPE_OBJECT, properties={'message_header': openapi.Schema(type=openapi.TYPE_STRING), 'message': openapi.Schema(type=openapi.TYPE_STRING)})})
    
error_res_data = openapi.Schema(type=openapi.TYPE_OBJECT, properties={'status': openapi.Schema(type=openapi.TYPE_NUMBER, title='400'), 'error': openapi.Schema(type=openapi.TYPE_OBJECT, properties={'message_header': openapi.Schema(type=openapi.TYPE_STRING), 'message': openapi.Schema(type=openapi.TYPE_STRING)})})

class TestView(APIView):
    api_view = ['POST']
    authentication_classes = [SessionAuthentication, TokenAuthentication]

    invitation_file = openapi.Parameter('invitation_file', openapi.IN_QUERY, type=openapi.TYPE_FILE, required=True)


    @swagger_auto_schema(
            manual_parameters=[invitation_file],operation_description="API Description", consumes="multipart/form-data",
        responses={200: success_res_data, 400: error_res_data}
    )
    def post(self, request):
        invitation_file = request.data.get('invitation_file', None)

    invitation_file = openapi.Parameter('invitation_file', openapi.IN_QUERY, type=openapi.TYPE_FILE, required=True)

    @swagger_auto_schema(
        manual_parameters=[invitation_file], operation_description="description",
        responses={200: success_res_data, 400: error_res_data}
    )
    def post(self, request):
        invitation_file = request.data.get('invitation_file', None)

теперь нажмите на кнопку разблокировать справа от api и добавьте "Token auth-token" и нажмите аутентификацию

теперь после вызова api и использования pdb значение переданного файла отображается для переменной invitation_file

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