Django Haystack обновляет индекс только для 1 модели
В настоящее время я пробую Django haystack для обновления данных из PostgreSQL в коллекцию solr.
Итак, я определил 2 модели в search_indexes.py
. Поэтому, когда я выполняю команду python manage.py update_index
, она индексирует данные из обеих моделей, определенных в search_indexes.py
в мою коллекцию solr.
КАК МНЕ ВЫПОЛНИТЬ ОПЕРАЦИЮ update_index
ТОЛЬКО ДЛЯ ОПРЕДЕЛЕННОЙ МОДЕЛИ, КОТОРАЯ МНЕ НУЖНА?
В настоящее время, когда я запускаю команду, работают следующие 2 модели.
Indexing 2 model1
Indexing 12 model2
search_indexes.py
from haystack import indexes
from .models import table1, table2
class model1(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(
document=True,
use_template=True,
template_name="search/indexes/tenants/table1_text.txt"
)
ats_id = indexes.CharField(model_attr='ats_id')
ats_name = indexes.CharField(model_attr='ats_name')
added_by = indexes.CharField(model_attr='added_by')
added_on = indexes.DateTimeField(model_attr='added_on')
def get_model(self):
return table1
def index_queryset(self, using=None):
return self.get_model().objects.all()
class model2(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(
document=True,
use_template=True,
template_name="search/indexes/tenants/table2_text.txt"
template_id = indexes.CharField(model_attr='template_id')
template_name = indexes.CharField(model_attr='template_name')
aspect = indexes.CharField(model_attr='aspect')
version = indexes.CharField(model_attr='version')
added_by = indexes.CharField(model_attr='added_by')
added_on = indexes.DateTimeField(model_attr='added_on')
ats_id = indexes.CharField(model_attr='ats_id')
def get_model(self):
return table2
def index_queryset(self, using=None):
return self.get_model().objects.all()
Пожалуйста, предложите обходной путь.
# Update just a single model (in a complex app).
./manage.py update_index models.model1