Solr Haystack 中的 Django 外键索引

标签 django solr django-haystack

我正在尝试索引具有一对多(外键)关系的模型。我无法处理如何声明 search_indexes.py ,任何人都知道该怎么做:

模型.py:

class CarModel(models.Model):
    manufacturer = models.ForeignKey(Manufacturer)

class Manufacturer(models.Model):
    name = models.CharField(max_length=200)

search_indexes.py:

class ManufacturerIndex(indexes.SearchIndex, indexes.Indexable):
    carmodel = MultiValueField(indexed=True, stored=True, faceted=True)

    def prepare_carmodel(self, obj):
        return ???????????????????    

    def get_model(self):
        return Manufacturer

最佳答案

您拥有 Manufacturer 实例,因此您需要反转 ForeignKey 关系以创建要保存在 中的 pks 列表(在本例中)多值字段

def prepare_carmodel(self, obj):
    return [int(cm.pk) for cm in obj.carmodel_set.all()]

关于Solr Haystack 中的 Django 外键索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19253948/

相关文章:

python - 如何为Django Rest Framework指定过滤数据参数?

python - 重定向到另一个域的 Django View

python - Django - 格式化计算间隔

apache - 在 Curator 重试尝试时处理来自 ZooKeeper 的 EndOfStreamException?

python - 如何使用 Format 在 Python 中连接字符串?

solr - 对mergefactor对搜索和索引的影响感到困惑

solr - 使用 DataImportHandler 时应使用什么 SQL 数据类型来填充 Solr 位置(空间)字段?

Django 干草堆 : search for a term with and without accents

django - haystack.exceptions.SearchBackendError : No fields were found in any search_indexes. 请在尝试搜索之前更正此问题

django - 在Django Haystick/Elasticsearch中找不到不是单词的字符串