今、私は問題の答えを持っています。haystack に同梱されている標準検索は、部分文字列による検索をサポートしていません。
haystacksearch を使用する検索用の独自のアプリ (mysearch) を作成します
独自の SearchForm (mysearch/forms.py) を作成する必要があります。
from django import forms
from haystack.forms import ModelSearchForm
from haystack.query import SearchQuerySet
class AutocompleteSearchForm(ModelSearchForm):
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(autocompletetext=self.cleaned_data.get('q'))
sqs = sqs.models(*self.get_models())
if self.load_all:
sqs = sqs.load_all()
return sqs
次に、独自の SearchForm (mysearch/urls.py) を使用して独自の URL ルートを作成する必要があります。
from django.conf.urls.defaults import *
from haystack.forms import ModelSearchForm
from haystack.query import SearchQuerySet
from haystack.views import SearchView
from forms import AutocompleteSearchForm
sqs = SearchQuerySet()
# Without threading...
urlpatterns = patterns('haystack.views',
url(r'^$', SearchView(searchqueryset=sqs, form_class=AutocompleteSearchForm), name='haystack_search'),
)
プロジェクトで urls.py を使用
url(r"^search/", include("mysearch.urls", namespace="Search")),
それ以外の
url(r'^search/', include('haystack.urls', namespace="Search")),