Сначала вы должны добавить связанное имя к своему внешнему ключу, чтобы вы могли вызвать его позже.
class Model2(models.Model):
field1_model2 = models.ForeignKey(Model1, related_name='something')
field2_model2 = models.CharField()
Затем индексируйте Model1.Для field2_model2 подготовьте данные, получив информацию, как показано ниже.
class Model1Index(indexes.SearchIndex):
text = indexes.CharField(document=True, use_template=True)
field1_model1 = indexes.CharField(model_attr='field1_model1', faceted=True)
field2_model2 = indexes.Charfield()
def prepare_field2_model2(self, obj):
return obj.something.field2_model2
site.register(Model1, Model1Index)
В вашем search.html вы бы отображали данные с {{ result.field1_model1 }}
и {{ result.field2_model2 }}
Нене забудьте добавить поля в свой файл .txt, который, вероятно, называется model1_text.txt в шаблонах -> поиск -> индексы -> имя_приложения.(или что-то похожее)
{{ object.field1_model1 }}
{{ object.field2_model2 }}
И тогда нужно просто обновить схему и перестроить ваш индекс, и вы должны быть в порядке.