我正在尝试索引具有一对多(外键)关系的模型。我无法处理如何声明 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/