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 FORM_QUERY = 'query' CONTEXT_QUERY = 'query' CONTEXT_FORM = 'form' CONTEXT_PAGE = 'page' REQUEST_PAGE = 'page' __author__ = 'neko259' TEMPLATE = 'search/search.html' class BoardSearchView(View): def get(self, request): context = RequestContext(request) form = SearchForm(request.GET, error_class=PlainErrorList) context[CONTEXT_FORM] = form if form.is_valid(): query = form.cleaned_data[FORM_QUERY] if len(query) >= 3: results = SearchQuerySet().auto_query(query).order_by('-id').load_all() paginator = get_paginator(results, 10) if REQUEST_PAGE in request.GET: page = int(request.GET[REQUEST_PAGE]) else: page = 1 context[CONTEXT_PAGE] = paginator.page(page) context[CONTEXT_QUERY] = query return render(request, TEMPLATE, context)