我正在尝试使用 django haystack 制作自定义搜索表单,
我的表格:
class UserSearchForm(SearchForm):
resume = forms.ModelChoiceField(queryset=resume.objects.all(),
required=False)
def search(self):
# To get a SQS that's already handled the main field.
sqs = super(UserSearchForm, self).search()
# Now handle searching for the school if that's been chosen.
if 'resume' in self.cleaned_data:
sqs = sqs.filter(resumes=self.cleaned_data['resume'])
return sqs
网址.py:
url(r'^search/$', FacetedSearchView(form_class=UserSearchForm, searchqueryset=sqs1), name='haystack_search'),
serach_indexes.py
class UserIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
city = indexes.CharField(model_attr='city')
dob = indexes.CharField(model_attr='dob')
first_name = indexes.CharField(model_attr='first_name')
last_name = indexes.CharField(model_attr='last_name')
phone_number1 = indexes.CharField(model_attr='phone_number1')
phone_number2 = indexes.CharField(model_attr='phone_number2')
phone_number3 = indexes.CharField(model_attr='phone_number3')
cnic = indexes.CharField(model_attr='cnic')
gender = indexes.CharField(model_attr='gender')
resumes = indexes.MultiValueField()
def prepare_resumes(self, obj):
# Use the relation and hang the id's off it.
return [resume.resume_id for resume in obj.resumes.all()]
def get_model(self):
return user_info
当我转到 URL 时,它显示“ init () 有一个意外的关键字参数‘selected_facets’”
实际上,我想要做的是当搜索用户时,它会返回其信息、教育、经验等。我对所有这些都有单独的模型。