我在一个 django 应用程序上工作的干草堆搜索。但是如何在两个不同的应用程序上实现相同的。
我尝试过的。在两个应用程序中创建了不同的 search_index.py。
应用程序1
import datetime
from haystack import indexes
from app1.models import App1
class app1Index(indexes.SearchIndex, indexes.Indexable):
text = indexes.EdgeNgramField(document=True, use_template=True)
app1_text = indexes.CharField(model_attr='app1_text',null=True)
tags = indexes.CharField(model_attr='tags')
def get_model(self):
return App1
应用程序2
import datetime
from haystack import indexes
from app2.models import App2
class app2Index(indexes.SearchIndex, indexes.Indexable):
text = indexes.EdgeNgramField(document=True, use_template=True)
app2_title = indexes.CharField(model_attr='app2_title',null=True)
def get_model(self):
return App2
这是 search.html
{% for result in page.object_list %}
<p>
<a href="{{ result.object.get_absolute_url }}">{{ result.object.wish_text }}</a>
<a href="{{ result.object.get_absolute_url }}">{{ result.object.title }}</a>
</p>
我在正确的位置有两个应用程序的数据模板。App1 {{ object.app1_text }} App2 {{ object.app2_title }}
如果我不使用 App2 search_index 那么对于 App1 它工作正常。rebuild_index 和 update_index 也适用于这两个应用程序。
问题:我怎样才能使它适用于两个应用程序?