Initial changes to support advanced search via haystack

This commit is contained in:
Roberto Rosario
2012-04-11 21:45:09 -04:00
parent 007b8c10ab
commit 97ae34a06d
2 changed files with 27 additions and 12 deletions

View File

@@ -1,19 +1,14 @@
from __future__ import absolute_import
from django import forms
from django.utils.translation import ugettext_lazy as _
from dynamic_search.api import registered_search_dict
from haystack.forms import SearchForm
from .api import registered_search_dict
class SearchForm(forms.Form):
q = forms.CharField(max_length=128, label=_(u'Search terms'))
source = forms.CharField(
max_length=32,
required=False,
widget=forms.widgets.HiddenInput()
)
class AdvancedSearchForm(forms.Form):
class AdvancedSearchForm(SearchForm):
def __init__(self, *args, **kwargs):
super(AdvancedSearchForm, self).__init__(*args, **kwargs)
@@ -23,3 +18,22 @@ class AdvancedSearchForm(forms.Form):
label=field['title'],
required=False
)
def search(self):
if not self.is_valid():
return self.no_query_found()
#if not self.cleaned_data.get('q'):
# return self.no_query_found()
for field in self.fields:
print 'field', field
#sqs = self.searchqueryset.auto_query(self.cleaned_data['q'])
if self.load_all:
sqs = sqs.load_all()
return sqs
def search(self):
sqs = super(ModelSearchForm, self).search()
return sqs.models(*self.get_models())

View File

@@ -3,10 +3,11 @@ from django.conf.urls.defaults import patterns, url
from haystack.forms import SearchForm
from .views import CustomSearchView
from .forms import AdvancedSearchForm
urlpatterns = patterns('dynamic_search.views',
url(r'^$', CustomSearchView(form_class=SearchForm), (), 'search'),
url(r'^advanced/$', 'search', {'advanced': True}, 'search_advanced'),
url(r'^advanced/$', CustomSearchView(form_class=AdvancedSearchForm), (), 'search_advanced'),
url(r'^again/$', 'search_again', (), 'search_again'),
url(r'^results/$', 'results', (), 'results'),
)