2011-11-07 9 views
0

という名前のモジュールは、私は、(私はあまりにもそれをコピーしているためにも、ヒューという音を追加します)その後、私のappsディレクトリに、それであるhaystackディレクトリをコピーし、それを解凍し、django-haystack-1.1.0.tar.gzをダウンロードして、私のINSTALLED_APPShaystackを追加しかし、私はサーバーを再起動すると500の内部エラーが発生します。それから私はhaystack.__init__からhandle_registrations()、実験のために、削除して、サイト作業を開始するが、私は干し草の山で検索しようとすると、また、私は持っているsettings.pyでNo fields were found in any search_indexes. Please correct this before attempting to search.を得る:ジャンゴ - 干し草の山 - search_sites

HAYSTACK_SITECONF = 'search_sites' 
HAYSTACK_SEARCH_ENGINE = 'whoosh' 
HAYSTACK_WHOOSH_PATH = os.path.join(PROJECT_ROOT, 'mysite_search_sites') 

その後、私はhandle_registrations()の削除を取り消し、INSTALLED_APPSから干し草を削除し、サーバーを再起動して今私はNo module named search_sitesを得ています。
import haystackおよびhaystack.__version__でも動作しますが、haystack.management.commandsしませんでした。
誰か助けてくれますか?

EDIT
マイトレースバック:あなたはいくつかの手順が欠落しているように聞こえるあなたがリストアップしましたインストール手順から

/lib/python2.7/django/core/handlers/base.py in get_response 
         response = callback(request, *callback_args, **callback_kwargs) ... 
▶ Local vars 
/myproject/apps/djangobb_forum/util.py in wrapper 
      output = function(request, *args, **kwargs) 
... 
▶ Local vars 
/myproject/apps/djangobb_forum/util.py in wrapper 
      result = func(request, *args, **kwargs) 
... 
▶ Local vars 
/myproject/apps/djangobb_forum/views.py in search 
       for post in posts: 
... 
▶ Local vars 
/myproject/apps/haystack/query.py in _manual_iter 
      if not self._fill_cache(current_position, current_position + ITERATOR_LOAD_PER_QUERY): 
... 
▶ Local vars 
/myproject/apps/haystack/query.py in _fill_cache 
     results = self.query.get_results() 
... 
▶ Local vars 
/myproject/apps/haystack/backends/__init__.py in get_results 
       self.run() 
... 
▶ Local vars 
/myproject/apps/haystack/backends/__init__.py in run 
     results = self.backend.search(final_query, **kwargs) 
... 
▶ Local vars 
/myproject/apps/haystack/backends/__init__.py in wrapper 
      return func(obj, query_string, *args, **kwargs) 
... 
▶ Local vars 
/myproject/apps/haystack/backends/whoosh_backend.py in search 
      self.setup() 
... 
▶ Local vars 
/myproject/apps/haystack/backends/whoosh_backend.py in setup 
     self.content_field_name, self.schema = self.build_schema(self.site.all_searchfields()) 
... 
▶ Local vars 
/myproject/apps/haystack/backends/whoosh_backend.py in build_schema 
      raise SearchBackendError("No fields were found in any search_indexes. Please correct this before attempting to search.") 
... 
▶ Local vars 

答えて

2

確かにHaystack setup instructionsを再訪してください。具体的には、「検索サイトの作成」と「インデックスの作成」セクションを見てください。

索引ファイルが不足しているようです。 Haystackは、最初にインクルードされたときにインデックスから項目を登録するので、エラーが発生する理由を説明します。haystack.__init__

アプリケーションディレクトリに「search_indexes.py」というファイルを追加します。このファイルには、異なるモデル用に生成するインデックスのリストが含まれています。簡単な例は次のようになります:

from haystack.indexes import * 
from haystack import site 
from myapp.models import MyModel 

class MyModelIndex(SearchIndex): 
    text = CharField(document=True, use_template=True) 

    def prepare(self, obj): 
     self.prepared_data = super(MyModelIndex, self).prepare(obj) 
     self.prepared_data['text'] = obj.my_field 

site.register(MyModel, MyModelIndex) 

これは、「テキスト」というフリーテキスト検索フィールドをインデックスに追加します。検索するフィールドがないフリーテキストを検索すると、haystackはデフォルトでこのフィールドを検索します。モデルMyModelmy_fieldプロパティがこのテキストフィールドに追加され、検索可能になりました。これは、たとえば、モデルの名前または適切なテキストフィールドにすることができます。この例は少し素朴ですが、今は何かを稼働させるのに役立ちます。少し読んで展開することができます。

コールsite.registerはこのインデックスをモデルMyModelに対して登録しているので、haystackはそれを検出できます。

プロジェクトディレクトリには、作成したインデックスファイルを指すように、search_sites.pyという名前のファイル(設定に応じた名前)も必要です。以下を追加すると、アプリを見て登録したすべてのインデックスを自動検出します。

import haystack 
haystack.autodiscover() 
+0

ためLatestDocsですが、それは助けにはなりませんでした。私は何かを逃した場合、haystackのドキュメントで検索するために行く。 – Cadilac

+0

デバッグを有効にして(settings.pyのDEBUG = True)、500で得られている特定のエラーだけでなく、発生しているビューの関連情報も教えてください。また、「フィールドが見つかりませんでした」というエラーはどこにありますか? –

+0

エラー500はDEBUG = Trueで、それは私にとっては奇妙ですが、質問を編集してトレースバックを追加します – Cadilac

2

あなたはウルの設定に従ってウルプロジェクトのルートディレクトリsearch_sites.pyを作成する必要があります。PYと

import haystack 
haystack.autodiscover() 

この「いいえモジュールの名前search_sites」エラー を修正します追加し、これは私が `search_indexes`ファイルを持っているジャンゴ・ヘイスタック構成

関連する問題