DRF - Base Viewset for checking query parameters

I am using Django 1.9 and Django Rest Framework 3.3

I am creating three new endpoints that are similar, but still different enough that I want them to be their own views to avoid messy code. They are not backed by a model, so I distribute ViewSetdirectly. One similarity between all three endpoints is the same two query parameters. Therefore, I believe that I am doing this:

class MyFirstViewset(viewsets.ViewSet):

    def list(self, request):
        some_param = request.query_params.get('someparam')
        if not some_param:
            return Response('someparam query parameter is required', status.HTTP_400_BAD_REQUEST)
        some_other_param = request.query_params.get('someotherparam')
        if not some_other_param:
              return Response('someotherparam query parameter is required', status.HTTP_400_BAD_REQUEST)


class MySecondViewset(viewsets.ViewSet):

    def list(self, request):
        some_param = request.query_params.get('someparam')
        if not some_param:
            return Response('someparam query parameter is required', status.HTTP_400_BAD_REQUEST)
        some_other_param = request.query_params.get('someotherparam')
        if not some_other_param:
              return Response('someotherparam query parameter is required', status.HTTP_400_BAD_REQUEST)

... . , , , , DRF. ? , , , ViewSet ? , list(), , list() - .

- , ? ? , . . !

0
1

, Base Base , - , MixIns, , , MyBaseViewSet MyFirstViewset MySecondViewset .

, get_queryset list ListAPIView, - , :

class MyBaseViewSet(generics.ListAPIView):
    serializer_class = YourSerializer
    permission_classes = (permissions.IsAuthenticated,)

    def get_queryset(self):
        some_param = self.request.query_params.get('someparam')
        if not some_param:
             raise exceptions.PermissionDenied
0

All Articles