POST без тела на DRF - PullRequest
       6

POST без тела на DRF

0 голосов
/ 03 августа 2020

Я пишу API на Django Rest Framework, чтобы следить за пользователями. Я определяю метод POST, которому нужно следовать, но требуется тело. Хочу обойтись без тела или тела по умолчанию. Если я заменю POST на GET, работает, если это возможно и как я могу это сделать?

class UserProfileViewSet(ModelViewSet):

    serializer_class = UserProfileSerializer
    queryset = UserProfile.objects.all()
    filter_backends = (filters.SearchFilter,)
    search_fields = ('name', 'email')
    permission_classes = (UpdateOwnProfile,)

    @action(methods=['POST'], detail=True, url_path='follow')
    def follow(self, request, pk=None):
        user_to_follow = UserProfile.objects.get(pk=pk)
        request.user.add_relationship(
            user_to_follow, RELATIONSHIP_FOLLOWING)
        return Response([], status=status.HTTP_200_OK)

1 Ответ

1 голос
/ 03 августа 2020

Если в вашем классе сериализатора serializer_class = UserProfileSerializer есть обязательные поля, тогда тело формы является обязательным. Если вы не хотите, чтобы они были обязательными, вы можете явно отключить их или сделать поля только для чтения с помощью seralizers.ReadOnlyField()

. Если вы получаете сообщение об ошибке, отображение трассировки стека может помочь в ее разрешении.

...