【发布时间】:2017-03-18 08:27:56
【问题描述】:
我一直在尝试使用 rdf-haystack 过滤器实现多个模型,但它不起作用。这是我的例子: 我有两个模型 search_indexes.py
class PersonSkillIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
person_name = indexes.CharField(model_attr='person_id')
skill_name = indexes.EdgeNgramField(model_attr='skill_id')
autocomplete = indexes.EdgeNgramField()
@staticmethod
def prepare_autocomplete(obj):
return " ".join((obj.skill_id.name))
def get_model(self):
return PersonSkill
def index_queryset(self, using=None):
return self.get_model().objects.all()
def prepare_person_id(self, obj):
return obj.person_id.name
def prepare_skill_id(self, obj):
return obj.skill_id.name
class PersonPositionIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
person_name = indexes.CharField(model_attr='person_id')
position_name = indexes.EdgeNgramField(model_attr='position_id')
autocomplete = indexes.EdgeNgramField()
@staticmethod
def prepare_autocomplete(obj):
return " ".join(( obj.position_id.title))
def get_model(self):
return PersonPosition
def index_queryset(self, using=None):
return self.get_model().objects.all()
def prepare_person_id(self, obj):
return obj.person_id.name
def prepare_position_id(self, obj):
return obj.position_id.name
我想使用以下 searchQuerySet 搜索 PersonSkill 和 PersonPosition 模型:
http://localhost:8000/en/api/profiles/search/?skill_name=python&position_name=programmer
Haytack 过滤器是否支持此功能?如果有任何建议将受到欢迎! 谢谢
【问题讨论】:
标签: django-haystack