def get_context_data(self, **kwargs): ctx = super(SearchMixin, self).get_context_data(**kwargs) query = None results_count_context_name = self.results_context_name + "_count" filters = self.get_filters() q = self.get_keywords() # The API wrapper should possibly handle the need for the following ifs if q or filters: query = Index(name=self.index_name).search(self.document_class) if query: if q: query = query.keywords(q) if filters: query = query.filter(**filters) ctx[self.results_context_name] = query[: self.results_limit] ctx[results_count_context_name] = query.count() ctx[self.query_param_name] = q ctx[self.filters_context_name] = filters ctx.setdefault(self.results_context_name, []) ctx.setdefault(results_count_context_name, 0) return ctx