I am trying to use Haystack and Whoosh with my Django app. I followed the steps in Haystack docs, but I get this error when I search
AttributeError at /search/ 'module' object has no attribute 'get_model'
search_indexes.py -
import datetime from haystack import indexes from movies.models import Movie class MovieIndex(indexes.SearchIndex, indexes.Indexable): text = indexes.CharField(document=True, use_template=True) title = indexes.CharField(model_attr='title') def get_model(self): return Movie def index_queryset(self, using=None): """Used when the entire index for model is updated.""" return self.get_model().objects.all()
I could not find help with this error anywhere, what am I doing wrong?
Stacktrace -
Environment: Request Method: GET Request URL: http://127.0.0.1:8000/search/?q=The+Revenant&models=movies.movie Django Version: 1.9.1 Python Version: 2.7.6 Installed Applications: ('django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'whoosh', 'haystack', 'registration', 'crispy_forms', 'movies', 'mptt') Installed Middleware: ('django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware') Traceback: File "/home/dr_sherlock/movienalyse/virmovienalyse/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 149. response = self.process_exception_by_middleware(e, request) File "/home/dr_sherlock/movienalyse/virmovienalyse/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 147. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/dr_sherlock/movienalyse/virmovienalyse/local/lib/python2.7/site-packages/haystack/views.py" in __call__ 51. self.results = self.get_results() File "/home/dr_sherlock/movienalyse/virmovienalyse/local/lib/python2.7/site-packages/haystack/views.py" in get_results 91. return self.form.search() File "/home/dr_sherlock/movienalyse/virmovienalyse/local/lib/python2.7/site-packages/haystack/forms.py" in search 116. return sqs.models(*self.get_models()) File "/home/dr_sherlock/movienalyse/virmovienalyse/local/lib/python2.7/site-packages/haystack/forms.py" in get_models 110. search_models.append(models.get_model(*model.split('.'))) Exception Type: AttributeError at /search/ Exception Value: 'module' object has no attribute 'get_model'
Python 2.7.6
Django 1.9.1
Haystack 2.4.1
Whoosh 2.7.0
python django django-haystack whoosh
doctorsherlock
source share