Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
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)