Swagger/drf_yasg: для объекта Parameter требуется либо схема, либо тип (не оба)

У меня следующий путь:

path('path/<int:object_id>',
     function,
     name='function'),

В таком виде drf_yasg генерирует документацию для object_id, как если бы она была строкой:

drf_yasg string

Поэтому я решил вручную ввести информацию в декоратор swagger_auto_schema:

@swagger_auto_schema(
    method='PATCH',
    manual_parameters=[
        openapi.Parameter('object_id', openapi.IN_PATH, required=True, description='Object ID'),
        # query parameters
    ],
    # operation_description, responses, etc
)
@api_view(['PATCH'])
@permission_classes([IsAuthenticated])
def function(request, object_id)

Однако, сделав это, drf_yasg выдает ошибку either schema or type are required for Parameter object (not both)!, и я не могу исправить это, пока не удалю параметр пути object_id из декоратора

В любом случае, я заинтересован в том, чтобы иметь возможность явно указывать параметр пути в декораторе, а не позволять drf_yasg делать это самостоятельно

Как я могу это исправить?

вы должны указать атрибут схемы с нужным типом данных для параметра object_id.

@swagger_auto_schema(
        method='PATCH',
        manual_parameters=[
            openapi.Parameter('object_id', openapi.IN_PATH, schema=openapi.Schema(type=openapi.TYPE_INTEGER), description='Object ID'),
           
        ],)
Вернуться на верх