Django HaystackでElasticsearchを使用しています。カスタムビューでは、Django HaystackとElastic Searchで結果が表示されません
私が初めてカスタムビューを作成するまでは、の簡単な例の後に行ってください。
search_indexes.py:
class ExperimentIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
owner = indexes.CharField(model_attr='owner')
def get_model(self):
return Experiment
def index_queryset(self, using=None):
return self.get_model().lastversion_objects.all()
urls.py:
url(r'^search/?$', NepSearchView.as_view(), name='search_view')
urls.py前(カスタムビューなし):
url(r'^search/', include('haystack.urls'))
views.py
class NepSearchView(SearchView):
def get_queryset(self):
queryset = super(NepSearchView, self).get_queryset()
if not self.request.user.is_authenticated and \
self.request.user.groups.filter(name='trustees').exists():
return queryset # (with some filter)
else:
return queryset
search.htmlの:
{# ... #}
{% for result in page.object_list %}
{% if result.model_name == 'experiment' %}
{% include 'search/experiments.html' %}
{% endif %}
{% if result.model_name == 'study' %}
{% include 'search/studies.html' %}
{% endif %}
{% if result.model_name == 'group' %}
{% include 'search/groups.html' %}
{% endif %}
{% if result.model_name == 'experimentalprotocol' %}
{% include 'search/experimental_protocol.html' %}
{% endif %}
{# ... #}
まあデフォルトヘイスタックSearchView
を使用しているときNepSearchView
を導入するときながら、事実は、私は、正しいマッチを持っている、page.object_list
空で、私はNo results found.
をテンプレートに入れます。
私はすでにmanage.py rebuild_index
を実行していましたが、ウェブで広範に検索されていますが、何が欠けているかを説明するものは何も見つかりませんでした。