OKay, dit was een moeilijke om te vinden. Het blijkt dat het het beste is om een nieuwe form te maken en deze te gebruiken met een view:
De form (in dit geval geerfd van ModelForm:
class MySearch(SearchForm):
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()
sqs = self.searchqueryset.filter(content_auto=self.cleaned_data['q'])
sqs = super(MySearch,self).search() | sqs
if self.load_all:
sqs = sqs.load_all()
return sqs
En in de url.py:
urlpatterns += patterns('haystack.views',
url(r'^search/$', SearchView(form_class=MySearch ), name='haystack_search'),
)
De searchindex moet dan het volgende veld bevatten:
content_auto = indexes.EdgeNgramField(model_attr='name')
Nu zoekt hij partieel op naam, dus halve namen kan ook.