Проблема использования @extend_schema над @actoin в DRF
hi У меня есть @extend_schema библиотеки drf_spectacular в моем коде Мне нужно использовать его над моим @action для настройки деталей в OpenAPI, но я получаю ошибки вроде этой
и это мой код:
@extend_schema(summary="short summary")
@action(detail=True, methods=["GET"], url_name="command")
def command(self, request, pk) -> Union[Response, Http404]: # Retrieve Command
data = request.data
status = get_object_or_404(Command_Model, device=pk)
serializer = Serializer_Command(status)
return Response(serializer.data, status=Status.HTTP_200_OK)
@command.mapping.post
def command_create(self, request, pk) -> Response:
data = request.data.copy()
data["device"] = pk
command_instace = None
try:
command_instace = Command_Model.objects.get(device=pk)
except:
pass
serializer = Serializer_Command(
instance=command_instace, data=data, partial=True
)
if serializer.is_valid(raise_exception_validitor):
serializer.save()
return Response(data=serializer.data, status=Status.HTTP_201_CREATED)
return Response(status=status.HTTP_400_BAD_REQUEST)
Я пытаюсь переместить декоратор вниз @action, но не работает @extend_schema на самом деле я не получаю никакой ошибки, но в OpenAPI он не работает
также когда я удаляю @command.mapping.post из моего кода, он работает очень хорошо
Я исправил эту проблему, добавив больше @extend_schema к другим extra endpoints, если это не так, то вы получите ошибку вроде этой, я принимаю
@extend_schema(summary="short summary")
@action(detail=True, methods=["GET"], url_name="command")
def command(self, request, pk) -> Union[Response, Http404]: # Retrieve Command
data = request.data
status = get_object_or_404(Command_Model, device=pk)
serializer = Serializer_Command(status)
return Response(serializer.data, status=Status.HTTP_200_OK)
@extend_schema(summary="short summary")
@command.mapping.post
def command_create(self, request, pk) -> Response:
data = request.data.copy()
data["device"] = pk
command_instace = None
try:...