gpt4 book ai didi

django - haystack - 如何使用外键显示来自多个模型的数据?

转载 作者:行者123 更新时间:2023-12-04 12:12:42 26 4
gpt4 key购买 nike

我有两个模型:

模型.py

class model1 (models.Model):
field1_model1 = models.CharField()
filed2_model1 = models.CharField()

class model2 (models.Model):
field1_model2 = models.ForeignKey(model1)
field2_model2 = models.CharField()

使用 Haystack 我想根据filed1_model1 进行文本搜索,但是当我这样做时,我还想在搜索结果中显示filed2_model2。

search_indexes.py 和 search.html 模板文件中的内容是什么来实现这一点?

最佳答案

首先,您应该为外键添加一个相关名称,以便稍后调用它。

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 文件中,可能在模板 -> 搜索 -> 索引 -> app_name 中称为 model1_text.txt。 (或类似的东西)
{{ object.field1_model1 }}
{{ object.field2_model2 }}

然后它应该只是更新架构和重建索引的问题,你应该很高兴。

关于django - haystack - 如何使用外键显示来自多个模型的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6804809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com