title: Difference between ViewSet and GenericViewSet in Django rest framework
body: <p>I have a Django rest framework <strong>GenericViewset</strong> for which I am trying to set up pagination as follows:</p>
  
  <pre><code>#settings.py
  REST_FRAMEWORK = {
      'DEFAULT_PAGINATION_CLASS': 
           'rest_framework.pagination.PageNumberPagination',
      'PAGE_SIZE': 20
  }
  
  #views.py
  class PolicyViewSet(viewsets.GenericViewSet):
      def list(self, request):
          queryset = Policy.objects.all()
          page = self.paginate_queryset(queryset)
          serializer = PolicySerializer(page, many=True)
          return self.get_paginated_response(serializer.data)
  </code></pre>
  
  <p>This works as expected.However, if i try to do the same with just a normal <strong>Viewset</strong> as follows:</p>
  
  <pre><code>#views.py
  class PolicyViewSet(viewsets.ViewSet):
      def list(self, request):
          queryset = Policy.objects.all()
          page = self.paginate_queryset(queryset)
          serializer = PolicySerializer(page, many=True)
          return self.get_paginated_response(serializer.data)
  </code></pre>
  
  <p>I get an error stating:</p>
  
  <blockquote>
    <p>'PolicyViewSet' object has no attribute 'paginate_queryset'</p>
  </blockquote>
  
  <p>How do i set up pagination with a normal <strong>Viewset</strong>. What is the difference between a GenericViewset and Viewset in DRF ?</p>