def search(request): """ Performs sitewide search on units. """ search_form = SearchForm(request.GET) context = {"search_form": search_form} if search_form.is_valid(): units = Unit.objects.search(search_form.cleaned_data).select_related("translation") limit = request.GET.get("limit", 50) page = request.GET.get("page", 1) paginator = Paginator(units, limit) try: units = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. units = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of # results. units = paginator.page(paginator.num_pages) context["units"] = units context["title"] = _("Search for %s") % (search_form.cleaned_data["q"]) context["query_string"] = search_form.urlencode() context["search_query"] = search_form.cleaned_data["q"] else: messages.error(request, _("Invalid search query!")) return render_to_response("search.html", RequestContext(request, context))
def search(request): ''' Performs sitewide search on units. ''' search_form = SearchForm(request.GET) context = { 'search_form': search_form, } if search_form.is_valid(): units = Unit.objects.search( search_form.cleaned_data, ).select_related( 'translation', ) limit = request.GET.get('limit', 50) page = request.GET.get('page', 1) paginator = Paginator(units, limit) try: units = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. units = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of # results. units = paginator.page(paginator.num_pages) context['units'] = units context['title'] = _('Search for %s') % ( search_form.cleaned_data['q'] ) context['query_string'] = search_form.urlencode() context['search_query'] = search_form.cleaned_data['q'] else: messages.error(request, _('Invalid search query!')) return render_to_response( 'search.html', RequestContext(request, context) )