I'm trying to setup haystack with whoosh backend. When i try to gen the index [or any index command for that matter] i receive:
TypeError: Item in ``from list'' not a string
if i completely remove my search_indexes.py i get the same error [so i'm guessing it can't find that file at all]
what might cause this error? it's set to autodiscover and i'm sure my app is installed because i'm currently using it.
Full traceback:
Traceback (most recent call last):
File "./manage.py", line 17, in <module>
execute_manager(settings)
File "/Users/ghostrocket/Development/Redux/.dependencies/django/core/management/__init__.py", line 362, in execute_manager
utility.execute()
File "/Users/ghostrocket/Development/Redux/.dependencies/django/core/management/__init__.py", line 303, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/ghostrocket/Development/Redux/.dependencies/django/core/management/__init__.py", line 257, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/Users/ghostrocket/Development/Redux/.dependencies/django/core/management/__init__.py", line 67, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/Users/ghostrocket/Development/Redux/.dependencies/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/Users/ghostrocket/Development/Redux/.dependencies/haystack/__init__.py", line 124, in <module>
handle_registrations()
File "/Users/ghostrocket/Development/Redux/.dependencies/haystack/__init__.py", line 121, in handle_registrations
search_sites_conf = __import__(settings.HAYSTACK_SITECONF)
File "/Users/ghostrocket/Development/Redux/website/../website/search_sites.py", line 2, in <module>
haystack.autodiscover()
File "/Users/ghostrocket/Development/Redux/.dependencies/haystack/__init__.py", line 83, in autodiscover
app_path = __import__(app, {}, {}, [app.split('.')[-1]]).__path__
TypeError: Item in ``from list'' not a string
and here is my search_indexes.py
from haystack import indexes
from haystack import site
from myproject.models import *
site.register(myobject)
It seems like there are two problems you're running into.
The first is the one that's generating that TypeError
. It occurs while Haystack is searching through each app you have listed in INSTALLED_APPS
for a search_indexes.py (since you're auto-registering). I'm not sure exactly what the problem is, but I'd start by doing a search through your project for from list
and double-checking your code. I haven't encountered that exception before, but if that's happening in code you wrote you should post any relevant sections in your question
I believe the reason you get the same error with or without the search_indexes.py file is because it never reaches the point of trying to execute the code in that file.
That said, there should be more happening in that file (which is the second problem). You have to create an index class (that inherits from haystack.indexes.SearchIndex) and register that with the model. See this section of the documentation for instructions and an example.
I'd also ask this question in the django-haystack Google Group since the author and other users of haystack will see it there and they tend to be extremely helpful.