title: Django-filters does not work with the Viewset
body: <p>I have been trying to use <a href="https://github.com/carltongibson/django-filter" rel="noreferrer">django-filters</a> but the objects are not getting filtered. Also, the permission is not working for the <em>partial_update</em> views</p>
  
  <p>I have a Viewset which has the basic actions like - list(), retrieve(), destroy(), partial_update() and few other actions, and trying to apply filter for the same. </p>
  
  <p>After some research I found that since I am creating the queryset via filters I will have to override the <em>get_queryset()</em> method. However, that also doesn't seem to be working. Does the filter works only with <em>ModelViewSet</em> or <em>ListApiView</em>?</p>
  
  <p><strong>ViewSet -</strong></p>
  
  <pre class="lang-py prettyprint-override"><code>class PostViewSet(viewsets.ViewSet):
  """
  The Endpoint to list, retrieve, create and delete Posts.
  
  """
  filter_backends = (DjangoFilterBackend, )
  # filterset_class = PostFilter
  filter_fields = ('pet_age', 'pet_gender', 'breed')
  
  def get_permissions(self):
  
      if self.action == 'partial_update' or self.action == 'update':
          permission_classes = [IsPostAuthor, ]
  
      elif self.action == 'create' or self.action == 'destroy':
          permission_classes = [IsAuthenticated, ]
  
      else:
          permission_classes = [AllowAny, ]
  
      return[permission() for permission in permission_classes]
  
  def get_queryset(self):
      return Post.objects.active() # This is implemented via custom Manager
  
  def list(self, request, *args, **kwargs):
      """
      Method for Post listing. It can be accessed by anyone.
      """
  
      serializer = PostListSerializer(self.get_queryset(), many=True, context={"request": request})
  
      return Response(serializer.data)
  # REST CODE TRUNCATED
  </code></pre>
  
  <p><strong>Permission -</strong></p>
  
  <pre class="lang-py prettyprint-override"><code>class IsPostAuthor(permissions.BasePermission):
  """
  Object-level permission to only allow owners of an object to edit it.
  """
  
  def has_object_permission(self, request, view, obj):
      if request.user.is_authenticated:
          if view.action in ['partial_update', 'update']:
              return obj.user.id == request.user.id
          return False
  
      return False
  </code></pre>
  
  <p><strong>PostFilter -</strong></p>
  
  <pre class="lang-py prettyprint-override"><code>class PostFilter(filters.FilterSet):
  
  class Meta:
      model = Post
      fields = ('pet_age', 'pet_gender', 'breed', )
  </code></pre>
  
  <p><strong>Manager -</strong></p>
  
  <pre class="lang-py prettyprint-override"><code>class PostManager(models.Manager):
  
  def active(self):
      return self.filter(post_status='Active')
  </code></pre>
  
  <p>Any help will be highly appreciated.</p>