code: def filter(self, filter):
          
          new_query_set = self.clone()
          new_query_set.query.add_filter(filter)
          
          return new_query_set
docs: Add new filter to the query set. Note that since QuerySet is lazy, it would
          just combine this filter with the original filter with an 'AND'
          :Parameters: 
          - filter: a dictionary
          :Return: a new QuerySet object