我有一个 haystack 搜索,目前在以下模型上搜索效果很好:
class AdminEntry(models.Model):
product = models.ForeignKey('Product')
number_entries = models.IntegerField(max_length=3, null=True)
我的search_indexes.py:
class AdminEntryIndex(SearchIndex):
text = CharField(document=True, use_template=True)
author = CharField(model_attr='product__author')
title = CharField(model_attr='product__title')
desc = CharField(model_attr='product__desc')
def get_queryset(self):
return AdminEntry.objects.all()
site.register(AdminEntry, AdminEntryIndex)
但现在我想在我的搜索表单的下拉列表中添加额外的搜索参数,因为我添加了另一个模型:
class StaffEntry(models.Model):
product = models.ForeignKey('Product')
number_entries = models.IntegerField(max_length=3, null=True)
如果选择的下拉菜单是“Staff”,并且 AdminEntry 是“Admin”,我希望我的搜索在 StaffEntry 上搜索。有人可以帮助我如何使用 Haystack 和 Whoosh 来实现这一目标吗?提前致谢。
请您参考如下方法:
您要查找的是 ModelSearchForm:
http://django-haystack.readthedocs.org/en/latest/views_and_forms.html#modelsearchform
使用它代替默认的 SearchForm,您将获得每个索引模型的复选框。如果您扩展表单,您将能够将其更改为选择而不是复选框。
参见 http://django-haystack.readthedocs.org/en/latest/views_and_forms.html#views有关如何在 View 中使用自定义表单的信息。
