2016-02-02 29 views
0

我試圖實現草垛和嘶嘶聲,當我進入嘗試使用乾草堆和嗖的Django應用程序,它給了我很大的誤差

./manage.py rebuild_index 

我得到這個巨大的錯誤

WARNING: This will irreparably remove EVERYTHING from your search index in connection 'default'. 
    Your choices after this are to restore from backups or rebuild via the `rebuild_index` command. 
    Are you sure you wish to continue? [y/N] y 
    Removing all documents from your index because you said so. 
    All documents removed. 
    Indexing 10 posts 
    ERROR:root:Error updating posts using default 
    Traceback (most recent call last): 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/management/commands/update_index.py", line 188, in handle_label 
     self.update_backend(label, using) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/management/commands/update_index.py", line 233, in update_backend 
     do_update(backend, index, qs, start, end, total, verbosity=self.verbosity, commit=self.commit) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/management/commands/update_index.py", line 96, in do_update 
     backend.update(index, current_qs, commit=commit) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/backends/whoosh_backend.py", line 196, in update 
     doc = index.full_prepare(obj) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/indexes.py", line 212, in full_prepare 
     self.prepared_data = self.prepare(obj) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/indexes.py", line 203, in prepare 
     self.prepared_data[field.index_fieldname] = field.prepare(obj) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/fields.py", line 159, in prepare 
     return self.convert(super(CharField, self).prepare(obj)) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/fields.py", line 79, in prepare 
     return self.prepare_template(obj) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/fields.py", line 136, in prepare_template 
     t = loader.select_template(template_names) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/django/template/loader.py", line 74, in select_template 
     raise TemplateDoesNotExist(', '.join(template_name_list), chain=chain) 
    django.template.exceptions.TemplateDoesNotExist: search/indexes/posts/post_text.txt 
    Traceback (most recent call last): 
    File "./manage.py", line 10, in <module> 
     execute_from_command_line(sys.argv) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line 
     utility.execute() 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/django/core/management/__init__.py", line 345, in execute 
     self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/django/core/management/base.py", line 348, in run_from_argv 
     self.execute(*args, **cmd_options) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/django/core/management/base.py", line 399, in execute 
     output = self.handle(*args, **options) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/management/commands/rebuild_index.py", line 26, in handle 
     call_command('update_index', **options) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/django/core/management/__init__.py", line 119, in call_command 
     return command.execute(*args, **defaults) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/django/core/management/base.py", line 399, in execute 
     output = self.handle(*args, **options) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/management/commands/update_index.py", line 183, in handle 
     return super(Command, self).handle(*items, **options) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/django/core/management/base.py", line 548, in handle 
     label_output = self.handle_label(label, **options) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/management/commands/update_index.py", line 188, in handle_label 
     self.update_backend(label, using) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/management/commands/update_index.py", line 233, in update_backend 
     do_update(backend, index, qs, start, end, total, verbosity=self.verbosity, commit=self.commit) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/management/commands/update_index.py", line 96, in do_update 
     backend.update(index, current_qs, commit=commit) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/backends/whoosh_backend.py", line 196, in update 
     doc = index.full_prepare(obj) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/indexes.py", line 212, in full_prepare 
     self.prepared_data = self.prepare(obj) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/indexes.py", line 203, in prepare 
     self.prepared_data[field.index_fieldname] = field.prepare(obj) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/fields.py", line 159, in prepare 
     return self.convert(super(CharField, self).prepare(obj)) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/fields.py", line 79, in prepare 
     return self.prepare_template(obj) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/haystack/fields.py", line 136, in prepare_template 
     t = loader.select_template(template_names) 
    File "/Users/ray/Desktop/mypy/trydjango/lib/python3.5/site-packages/django/template/loader.py", line 74, in select_template 
     raise TemplateDoesNotExist(', '.join(template_name_list), chain=chain) 
    django.template.exceptions.TemplateDoesNotExist: search/indexes/posts/post_text.txt 

也繼承人我的settings.py

WHOOSH_INDEX = os.path.join(BASE_DIR, 'whoosh/') 


HAYSTACK_CONNECTIONS = { 
    'default': { 
     'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', 
     'PATH': WHOOSH_INDEX, 
    }, 
} 

我不知道究竟發生了什麼。歡迎任何幫助。我一直試圖鼓搗它,但我還沒有發現它是什麼。我也看不到在我的網站包中的haystack喜歡它顯示在上面的路徑

編輯:我在索引裏面添加了一個post目錄,然後把post_text.txt放在裏面。然後錯誤消失了,但現在沒有任何東西正在返回,但它就像一個不可見的列表正在推動我的CSS。這裏發生了什麼?

在終端我得到的消息像

Model could not be found for SearchResult '<SearchResult: posts.post (pk='20')>'. 
Model could not be found for SearchResult '<SearchResult: posts.post (pk='20')>'. 
[02/Feb/2016 15:34:11] "POST /posts/search/ HTTP/1.1" 200 32 
+0

您是否嘗試過創建模板'的搜索/索引/職位/ post_text.txt'? – Barun

回答

1

這僅僅是因爲use_template=Truesearch_indexes.py

使其use_template=False

否則,您必須指定您的模板。

查詢的結果是一組SearchResult對象,因此您必須獲取模型對象。

像這樣

sqs = SearchQuerySet().models(Model).load_all().auto_query(query) 
orm_objects = orm_objects.filter(pk__in=sqs.values_list('pk', flat=True)) 
return orm_objects 
相關問題