Python Django Haystack自定义表单自定义属性不返回任何结果

Python Django Haystack自定义表单自定义属性不返回任何结果,python,django,python-2.7,django-haystack,Python,Django,Python 2.7,Django Haystack,我已经按照中的说明制作了自己的搜索表单,但由于某种原因,如果我添加自己的搜索字段,它不会返回任何结果,即使它应该返回结果 My search_indexes.py: from haystack import indexes from my.app.models import MyModel class MyIndexIndex(indexes.SearchIndex, indexes.Indexable): text = indexes.NgramField(document=Tru

我已经按照中的说明制作了自己的搜索表单,但由于某种原因,如果我添加自己的搜索字段,它不会返回任何结果,即使它应该返回结果

My search_indexes.py:

from haystack import indexes 
from my.app.models import MyModel

class MyIndexIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.NgramField(document=True, use_template=True)    
    my_fieldname = indexes.CharField(model_attr='my_fieldname')

    def get_model(self):
        return MyModel
我的模型:

class MyModel(models.Model):
    some_field1 = models.CharField(_('Some field 1'), max_length=255)
    some_field2 = models.CharField(_('Some field 2'), max_length=255)

    my_fieldname = models.CharField(_('My field name'), max_length=255)
我的搜寻表格:

class MySearchForm(SearchForm):
    q = forms.CharField(label="Search", max_length=255, required=False)
    my_fieldname = forms.CharField(label="MySearchLabel", max_length=255, required=False)

    def search(self):
        sqs = super(MySearchForm, self).search()

        if self.is_valid() and self.cleaned_data['my_fieldname']:
            sqs = sqs.filter(my_fieldname=AutoQuery(self.cleaned_data['my_fieldname']))

        return sqs
My URL.py:

urlpatterns += patterns('haystack.views',
    url(r'^search/', SearchView(
        form_class=MySearchForm
    ), name='haystack_search'),
)
我已运行manage.py rebuild_index,但它不会影响。我的问题是我做错了什么,为什么我没有得到任何结果。如果我尝试使用q参数进行一些查询,结果会正常返回。

super(MySearchForm,self)。search()
使用默认字段名
content
执行
自动查询()。。。由于您尚未定义这样的字段,因此它不会返回任何结果。。。因此,我不会执行
super
调用,而是使用类似于-but-but将
fieldname
传递给:
auto_查询(querystring,fieldname='text')
的实现进行替换

如果要在模板中搜索,请确保模板定义正确。(如果要链接多个
filter()
调用,则它们将组合为usind和)

此外,根据您使用的搜索引擎,它可能会为您提供一个前端,您可以独立于haystack检查数据是否正确索引