Python django haystack搜索表单找不到is_vald方法

Python django haystack搜索表单找不到is_vald方法,python,django,django-forms,django-haystack,Python,Django,Django Forms,Django Haystack,我正在使用haystack对我的个人模型执行一个简单的搜索查询,查询所有选定的过滤器属性。我已经决定试用Faceted搜索表单,并创建了一个通用的TemplateViewSearchView class SearchView(TemplateView): template_name = "index.html" results = EmptySearchQuerySet() form_class = FacetedSearchForm form = None

我正在使用haystack对我的个人模型执行一个简单的搜索查询,查询所有选定的过滤器属性。我已经决定试用Faceted搜索表单,并创建了一个通用的TemplateView
SearchView

class SearchView(TemplateView):
    template_name = "index.html"
    results = EmptySearchQuerySet()
    form_class = FacetedSearchForm
    form = None
    query = ''
    selected_people = None

    def get(self, request, **kwargs):
        self.request = request
        self.query = self.get_query()
        if self.form.is_valid():
            self.results = self.get_results()
        context = self.get_context_data(request, **kwargs)

        if request.is_ajax() or request.GET.get('ajax'):
            self.template_name = 'search/Taleebo/search_results.html'

        return self.render_to_response(context)

    def get_query(self):
        return self.request.GET.get('q')

    def get_results(self):
        return self.form.search()
所有的路由都工作正常,但是当调用我的
get
方法时,它在线路上失败

self.form.is_valid()
有一个错误说
NoneType“objecthasnoattribute”是有效的“

我使用的是默认的form_类,所以不应该定义该属性吗

编辑:

我现在尝试使用haystack提供的SearchView,有效性不再是问题,但我不会从“结果”中获得任何记录。我将我的url.py更改为如下所示

 url(r'^search/person/', search_view_factory(
    view_class=SearchView,
    template='index.html',
    form_class=ModelSearchForm
), name='haystack_search'),

当您没有可访问的实例时,使用任何类都会导致相同的错误:

class SearchView(TemplateView):
(...)
      form = None  //<= Here you set the form to None
类搜索视图(TemplateView):
(...)

form=None//当我使用的字段是['q']查询字段时,我是否必须扩展haystack.SearchForm并创建自己的字段。我应该在这里指定什么最重要的是,您应该删除包含
None
初始化的那一行。为什么不使用文档中描述的
FacetedSearchView
:?我不知道存在这样的视图,在我的url.py文件中,我指定使用此自定义SearchView,但不知道haystack提供了一个,如果一切都设置正确,我应该能够遍历“结果”并获取所需的数据吗?使用此视图也会引发错误“FacetedSearchView”对象没有属性“status_code”