Django 1.9/Haystack 2.4.1 "Model could not be found for SearchResult"
Django 1.9/Haystack 2.4.1 "Model could not be found for SearchResult"
首先让我说一下,我已经尝试过这里的修复:
而且我还在
Model could not be found for SearchResult '<SearchResult: dictionary.termentry (pk=u'10')>'.
我正在使用 Whoosh 使用 Django 1.9 和 Haystack 2.4.1。我确定 SearchQuerySet 过滤得很好(当我 print queryset
我得到一个 SearchResult
对象的列表时)。我没有触及 SearchIndex 定义之外的任何东西,所以这是开箱即用的东西。仅供参考,这里是相关的代码位:
在search_indexes.py中:
class TermIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True,use_template=True)
rendered = indexes.CharField(use_template=True,indexed=False)
def get_model(self):
return TermEntry
def index_queryset(self,using=None):
"""Used when updating index for model"""
return self.get_model().objects.all()
在views.py中:
def search(request):
query = ''
queryset = None
results = []
showresults = True
if request.method == 'GET' and request.GET.get('q'):
form = SearchForm(request.GET)
showresults = True
query = request.GET.get('q')
# making sure we got a query
print query
queryset = SearchQuerySet().filter(content=AutoQuery(query))
# checking to see if we got anything in our queryset
print queryset
for q in queryset:
print q
results.append(q.object)
# checking to see if we got any results
print results
else:
form = SearchForm()
showresults = False
context_dict = {
'query': query,
'results': results,
'form': form,
'showresults': showresults,
}
return render(request, 'search/search.html', context_dict)
我不知道这里的修复是什么,更不用说问题了(我的意思是,实际问题;我知道我遇到了错误)。我的设置都是照章办事的,我 nuked/rebuilt 索引大概有八十次。我的路径或数据结构没有任何时髦或花哨的东西,除了后端和数据库等的默认值外,我没有使用任何东西。
我和 Solr 有同样的问题。在这里找到解决方案:
基本上,Haystack 2.4.1 使用过时的 Django 调用,这在最新的 master 中已修复。
所以我已经将我的要求中的 django-haystack==2.4.1 替换为 git+git://github.com/django-haystack/django-haystack .git 它开始起作用了。
首先让我说一下,我已经尝试过这里的修复:
而且我还在
Model could not be found for SearchResult '<SearchResult: dictionary.termentry (pk=u'10')>'.
我正在使用 Whoosh 使用 Django 1.9 和 Haystack 2.4.1。我确定 SearchQuerySet 过滤得很好(当我 print queryset
我得到一个 SearchResult
对象的列表时)。我没有触及 SearchIndex 定义之外的任何东西,所以这是开箱即用的东西。仅供参考,这里是相关的代码位:
在search_indexes.py中:
class TermIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True,use_template=True)
rendered = indexes.CharField(use_template=True,indexed=False)
def get_model(self):
return TermEntry
def index_queryset(self,using=None):
"""Used when updating index for model"""
return self.get_model().objects.all()
在views.py中:
def search(request):
query = ''
queryset = None
results = []
showresults = True
if request.method == 'GET' and request.GET.get('q'):
form = SearchForm(request.GET)
showresults = True
query = request.GET.get('q')
# making sure we got a query
print query
queryset = SearchQuerySet().filter(content=AutoQuery(query))
# checking to see if we got anything in our queryset
print queryset
for q in queryset:
print q
results.append(q.object)
# checking to see if we got any results
print results
else:
form = SearchForm()
showresults = False
context_dict = {
'query': query,
'results': results,
'form': form,
'showresults': showresults,
}
return render(request, 'search/search.html', context_dict)
我不知道这里的修复是什么,更不用说问题了(我的意思是,实际问题;我知道我遇到了错误)。我的设置都是照章办事的,我 nuked/rebuilt 索引大概有八十次。我的路径或数据结构没有任何时髦或花哨的东西,除了后端和数据库等的默认值外,我没有使用任何东西。
我和 Solr 有同样的问题。在这里找到解决方案:
基本上,Haystack 2.4.1 使用过时的 Django 调用,这在最新的 master 中已修复。
所以我已经将我的要求中的 django-haystack==2.4.1 替换为 git+git://github.com/django-haystack/django-haystack .git 它开始起作用了。