          'update': 'change',
          'destroy': 'delete',
      }
  
      def _get_names(self, view):
          model_cls = getattr(view, 'model', None)
          queryset = getattr(view, 'queryset', None)
  
          if model_cls is None and queryset is not None:
              model_cls = queryset.model
 
</s> remove             model_name = self._get_names(view)
            view.queryset = guardian.shortcuts.get_objects_for_user(user, 'read_' + model_name, queryset)  #TODO: move to filter
 </s> add             view.queryset = ObjectPermissionReaderFilter().filter_queryset(request, queryset, view) </s> remove from rest_framework.compat import django_filters, six
 </s> add from rest_framework.compat import django_filters, six, guardian </s> remove             user = request.user
 </s> add 
    def _get_model_name(self, view):
          'update': 'change',
          'destroy': 'delete',
      }
  
    def _get_model_name(self, view):
          model_cls = getattr(view, 'model', None)
          queryset = getattr(view, 'queryset', None)
  
          if model_cls is None and queryset is not None:
              model_cls = queryset.model
keep keep keep keep replace keep keep keep keep keep
 switch to a dedicated filter for read list object permissions 
rest_framework/permissions.py