This either returns self.get_queryset(), self.search(), or
        self.search() wrapped up in a Pageable.

def results(self):
        """
        This either returns self.get_queryset(), self.search(), or
        self.search() wrapped up in a Pageable.
        """
        if not self.in_search_mode():
            return self.get_queryset()

        # we are doing a search
        objects = self.search()

        # if objects isn't a Search object, just return it, since it's
        # (hopefully) just a list or queryset.
        if not isinstance(objects, Search):
            return objects

        if not self.is_valid_query(objects):
            self.add_error(None, forms.ValidationError("Invalid Query", code="invalid-query"))
            return []

        # convert the search results to something that can be iterated over, and paged
        return Pageable(objects, self.get_queryset())