Как добавить дополнительные действия для маршрутизации конечных точек в django rest frameworks - PullRequest
0 голосов
/ 14 июля 2020

Я новичок в django rest framework, и я пытаюсь изучить drf. Я не знал, как добиться этого. Мне нужны такие вещи, как (Дополнительные действия), как показано на скриншоте, для навигации по всей конечной точке. введите описание изображения здесь

1 Ответ

1 голос
/ 14 июля 2020

Вот пример из официальной документации DRF:

class UserViewSet(viewsets.ModelViewSet):
    """
    A viewset that provides the standard actions
    """
    queryset = User.objects.all()
    serializer_class = UserSerializer

    @action(detail=True, methods=['post'])
    def set_password(self, request, pk=None):
        user = self.get_object()
        serializer = PasswordSerializer(data=request.data)
        if serializer.is_valid():
            user.set_password(serializer.data['password'])
            user.save()
            return Response({'status': 'password set'})
        else:
            return Response(serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)

    @action(detail=False)
    def recent_users(self, request):
        recent_users = User.objects.all().order_by('-last_login')

        page = self.paginate_queryset(recent_users)
        if page is not None:
            serializer = self.get_serializer(page, many=True)
            return self.get_paginated_response(serializer.data)

        serializer = self.get_serializer(recent_users, many=True)
        return Response(serializer.data)

Для получения дополнительной информации посетите: Действия Viewset

...