Sites Framework

3 views
Skip to first unread message

Dipper

unread,
Aug 7, 2009, 6:10:35 AM8/7/09
to Djapian Users
Hi, does anyone know of an elegant way to combine djapian search
with the Django sites framework? I have some code that works, but it
is clumsy:

from django import forms
from django.shortcuts import render_to_response
from offers.models import Offer
from offers.index import OfferIndexer
from django.core.paginator import Paginator
from django.contrib.sites.models import Site

ITEMSPERPAGE = 20
current_site = Site.objects.get_current()

class SearchForm(forms.Form):
query = forms.CharField(required=True)

def search(request):

results = []
if request.GET:
form = SearchForm(request.GET)
if form.is_valid():
query = form.cleaned_data['query']
result = Offer.indexer.search(query).prefetch()
rlist = []
for row in result:
if row.instance.site.pk == current_site.pk:
rlist.append(row)
paginator = Paginator(rlist, ITEMSPERPAGE)
results = paginator.page(int(request.GET.get('page', 1)))
else:
form = SearchForm()

return render_to_response('paged_search.html', {'results':
results, 'form': form})

Also, I would like to amend the code so that on first rendering the
page all rows for the current site are displayed, with pagination,
along with the search box. Any ideas?


Thanks.
Reply all
Reply to author
Forward
0 new messages