Есть ли альтернатива использованию сериализатора для параметра запроса extend_schema в drf-spectacular?

Я использую drf-spectacular для создания документации swagger/redoc API.

Одной из самых полезных функций является возможность тестирования запросов через сгенерированную swagger html-страницу, но я хотел бы принудительно использовать тип содержимого application/x-www-form-urlencoded, чтобы при получении запроса конечными точками Django, request. data имеет закодированные данные, а не оказывается частью строки запроса. drf-spectacular всегда по умолчанию использует строки запроса, например, /objects/action/?key=value

Единственный способ, который я нашел, как это сделать - использовать сериализатор в сочетании с контент-типом запроса, например

@extend_schema(
    request={'application/x-www-form-urlencoded': DoTheActionInputsSerializer},
    responses={200: DoTheActionOutputsSerializer},
    methods=["POST"]
)
@action(methods=['post'], detail=False)
def do_the_action(self, request, *args, **kwargs):
    ...

Это работает отлично, но требует большого количества маленьких сериализаторов, которые могут иметь только один или два атрибута. Есть ли альтернативный способ добиться этого внутри декоратора extend_schema?

Я надеялся, что что-то вроде следующего будет работать, но нет

request={'application/x-www-form-urlencoded': {'schema': {'foo_id': OpenApiTypes.INT}}},
Вернуться на верх