Django описание данных изменения запроса swagger - PullRequest
0 голосов
/ 28 мая 2020

Мне нужно изменить описание запроса по умолчанию для одного 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 декоратор?

...