code: def filter(self, **kwargs):
          
          if kwargs:
              assert self.query.can_filter(), "Cannot filter a query once a slice has been taken."
  
          clone = self._clone()
          clone.query.add_filters(**kwargs)
  
          return clone
docs: Returns a new QuerySet instance with the args ANDed to the existing
          set.