from django.shortcuts import render from django.template import RequestContext from django.views.generic import View from haystack.query import SearchQuerySet from boards.abstracts.paginator import get_paginator from boards.forms import SearchForm, PlainErrorList __author__ = 'neko259' TEMPLATE = 'search/search.html' class BoardSearchView(View): def get(self, request): context = RequestContext(request) form = SearchForm(request.GET, error_class=PlainErrorList) context['form'] = form if form.is_valid(): query = form.cleaned_data['query'] if len(query) >= 3: results = SearchQuerySet().auto_query(query).order_by('-id') \ .highlight() paginator = get_paginator(results, 10) if 'page' in request.GET: page = int(request.GET['page']) else: page = 1 context['page'] = paginator.page(page) context['query'] = query return render(request, TEMPLATE, context)