Haystack Faceted:__init__() 得到了一个意外的关键字参数 'facet_fields'
Haystack Faceted: __init__() got an unexpected keyword argument 'facet_fields'
在享受 haystack 2.4.1 (Django 1.8) 的第一个结果时,我不得不承认我很难学习它。文档有时不完整,某些功能示例很少。
分面搜索就是其中之一。
我正在关注 documentation,在 url.py:
urlpatterns = patterns('haystack.views',
url(r'^$', FacetedSearchView(form_class=FacetedSearchForm, facet_fields=['author']), name='haystack_search'),
)
我收到以下错误:
TypeError at /tag_analytics/faceted_search/
__init__() got an unexpected keyword argument 'facet_fields'
看起来 FacetSearchView 不接受 facet_fields
参数,这将我带到版本 2.4.0,而正确的方法是
FacetedSearchView(form_class=FacetedSearchForm, searchqueryset=sqs)
虽然我确定我的版本是 2.4.1,但我尝试了这个选项,并得到了
TypeError at /tag_analytics/faceted_search/
slice indices must be integers or None or have an __index__ method
提前感谢您提供任何线索!
最好的,
艾伦
文档是错误的,而且令人困惑。您不能将 facet_fields
传递给 FacetedSearchView
的构造函数。
您采用的方法是正确的,尽管您不应将所有这些参数都放在 url
定义中,您应该创建自己的视图 - 如下所示:
# tag_analytics/views.py
from haystack.generic_views import FacetedSearchView as BaseFacetedSearchView
# Now create your own that subclasses the base view
class FacetedSearchView(BaseFacetedSearchView):
form_class = FacetedSearchForm
facet_fields = ['author']
template_name = 'search.html'
context_object_name = 'page_object'
# ... Any other custom methods etc
然后在urls.py
:
from tag_analytics.views import FacetedSearchView
#...
url(r'^$', FacetedSearchView.as_view(), name='haystack_search'),
在享受 haystack 2.4.1 (Django 1.8) 的第一个结果时,我不得不承认我很难学习它。文档有时不完整,某些功能示例很少。
分面搜索就是其中之一。
我正在关注 documentation,在 url.py:
urlpatterns = patterns('haystack.views',
url(r'^$', FacetedSearchView(form_class=FacetedSearchForm, facet_fields=['author']), name='haystack_search'),
)
我收到以下错误:
TypeError at /tag_analytics/faceted_search/
__init__() got an unexpected keyword argument 'facet_fields'
看起来 FacetSearchView 不接受 facet_fields
参数,这将我带到版本 2.4.0,而正确的方法是
FacetedSearchView(form_class=FacetedSearchForm, searchqueryset=sqs)
虽然我确定我的版本是 2.4.1,但我尝试了这个选项,并得到了
TypeError at /tag_analytics/faceted_search/
slice indices must be integers or None or have an __index__ method
提前感谢您提供任何线索!
最好的, 艾伦
文档是错误的,而且令人困惑。您不能将 facet_fields
传递给 FacetedSearchView
的构造函数。
您采用的方法是正确的,尽管您不应将所有这些参数都放在 url
定义中,您应该创建自己的视图 - 如下所示:
# tag_analytics/views.py
from haystack.generic_views import FacetedSearchView as BaseFacetedSearchView
# Now create your own that subclasses the base view
class FacetedSearchView(BaseFacetedSearchView):
form_class = FacetedSearchForm
facet_fields = ['author']
template_name = 'search.html'
context_object_name = 'page_object'
# ... Any other custom methods etc
然后在urls.py
:
from tag_analytics.views import FacetedSearchView
#...
url(r'^$', FacetedSearchView.as_view(), name='haystack_search'),