      def has_permission(self, request, view):
          if view.action == 'list':
              user = request.user
              queryset = view.get_queryset()
              model_name = self._get_names(view)
              view.queryset = guardian.shortcuts.get_objects_for_user(user, 'read_' + model_name, queryset)  #TODO: move to filter
          return super(DjangoObjectLevelModelPermissions, self).has_permission(request, view)
  
      def has_object_permission(self, request, view, obj):
          user = request.user
          model_name = self._get_names(view)
 
</s> remove             user = request.user
 </s> add  </s> remove         user = request.user
        model_name = self._get_names(view)
 </s> add  </s> remove     def _get_names(self, view):
 </s> add     def _get_model_name(self, view):
            view.queryset = ObjectPermissionReaderFilter().filter_queryset(request, queryset, view)
      def has_permission(self, request, view):
          if view.action == 'list':
              user = request.user
              queryset = view.get_queryset()
            view.queryset = ObjectPermissionReaderFilter().filter_queryset(request, queryset, view)
            view.queryset = ObjectPermissionReaderFilter().filter_queryset(request, queryset, view)
          return super(DjangoObjectLevelModelPermissions, self).has_permission(request, view)
  
      def has_object_permission(self, request, view, obj):
          user = request.user
          model_name = self._get_names(view)
keep keep keep keep replace replace keep keep keep keep keep
 switch to a dedicated filter for read list object permissions 
rest_framework/permissions.py