Мне нужно изменить описание запроса по умолчанию для одного api_view
в swagger
. Как этого добиться? Поскольку схема запроса основана на serializer_class
. Например, у меня есть viewset
class UserViewSet(viewsets.ViewSet, generics.RetrieveAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer
permission_classes = (AllowAny,)
с таким представлением:
@action(detail=False, methods=['post'])
def login(self, request):
data = request.data
email = data['email']
email = email.lower()
user = User.objects.filter(email=email).first()
password_valid = user.check_password(data["password"])
if not password_valid:
return Response({'error': 'wrong password'}, status=status.HTTP_401_UNAUTHORIZED)
serializer = UserSerializer(user)
return Response(serializer.data, status=status.HTTP_200_OK)
По умолчанию swagger с генерацией схемы с полями запроса на основе класса UserSerializer
. Итак, для нестандартного поведения я должен создать новый класс сериализатора ?
class LoginSerializer(serializers.Serializer):
email = serializers.EmailField()
password = serializers.CharField()
и добавить его как request_body
в swagger_auto_schema
декоратор?