def __call__(self, request): form = self.search_form(request) if not form.is_valid(): raise Exception(form.errors) query = form.cleaned_data['query'] search_models = form.get_models() try: page = request.GET.get('page', 1) page_number = int(page) except ValueError: raise Http404 offset = (page_number - 1) * RESULTS_PER_PAGE results = search(query, models=search_models, limit=RESULTS_PER_PAGE, offset=offset) # XXX: implement load_all paginator = SearchPaginator(results, RESULTS_PER_PAGE) context = Context( request, { 'query': query, 'form': form, 'page': paginator.page(page_number), 'paginator': paginator }) return render_to_response(self.template, context_instance=context)
def __call__(self, request): form = self.search_form(request) if not form.is_valid(): raise Exception(form.errors) query = form.cleaned_data['query'] search_models = form.get_models() try: page = request.GET.get('page', 1) page_number = int(page) except ValueError: raise Http404 offset = (page_number - 1) * RESULTS_PER_PAGE results = search(query, models=search_models, limit=RESULTS_PER_PAGE, offset=offset) # XXX: implement load_all paginator = SearchPaginator(results, RESULTS_PER_PAGE) context = Context(request, { 'query': query, 'form': form, 'page': paginator.page(page_number), 'paginator' : paginator }) return render_to_response(self.template, context_instance=context)
def search(request, template='search/search.html'): form = ModelSearchForm(request.GET) if not form.is_valid(): raise Exception(form.errors) query = form.cleaned_data['query'] search_models = form.get_models() try: page = request.GET.get('page', 1) page_number = int(page) except ValueError: raise Http404 results = djangosearch.search(query, models=search_models) paginator = Paginator(results, RESULTS_PER_PAGE) context = RequestContext(request, { 'query': query, 'form': form, 'page': paginator.page(page_number), 'paginator' : paginator }) return render_to_response(template, context_instance=context)