Django Haystack docs は言う:
**Warning**
When you choose a document=True field, it should be consistently named across all of your SearchIndex classes to avoid confusing the backend. The convention is to name this field text.
There is nothing special about the text field name used in all of the examples. It could be anything; you could call it pink_polka_dot and it won’t matter. It’s simply a convention to call it text.
しかし、私はそれが何を意味するのか分かりません。これは彼らのモデル例です:
haystack から datetime をインポート myapp.models からインデックスをインポート import Note
class NoteIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
author = indexes.CharField(model_attr='user')
pub_date = indexes.DateTimeField(model_attr='pub_date')
def get_model(self):
return Note
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.filter(pub_date__lte=datetime.datetime.now())
私が引用したテキストは、MY モデルのメイン フィールドを参照し、それを「テキスト」と呼ぶべきだと言っていますか、それとも search_indexes.py で定義されたクラスに言及していますか?
search_indexes.py のクラスの場合、上記の例で関連付けられているフィールド名はどこですか? model_attr がありません!
text = indexes.CharField(document=True, use_template=True)
そして、私の実際のアプリ モデルの場合、多くのアプリを含むプロジェクトをリファクタリングして、メインのテキスト フィールドを「テキスト」と呼ぶにはどうすればよいでしょうか。
お知らせ下さい。ありがとう。