Django 1.9 / Haystack 2.4.1"无法找到SearchResult"

时间:2016-01-18 22:22:24

标签: django django-haystack whoosh

首先我要说的是,我在这里尝试了修复:

Haystack says “Model could not be found for SearchResult”

我还在

Model could not be found for SearchResult '<SearchResult: dictionary.termentry (pk=u'10')>'.

我在Django 1.9&amp; amp;干草堆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)

我不知道这里有什么问题,更不用说问题了(我的意思是,实际问题;我知道我得到了错误)。我的设置都是按照书本进行的,而且我已经将指数重新编制/重建了八十次。我的路径或数据结构没有任何时髦或花哨的东西,除了默认用于后端和数据库之外,我没有使用任何东西。

1 个答案:

答案 0 :(得分:5)

我和Solr有同样的问题。在此处找到解决方案:Haystack says “Model could not be found for SearchResult”

基本上,Haystack 2.4.1使用对Django的过时调用,这在最新的主人中得到修复。

所以我用git + git://github.com/django-haystack/django-haystack.git替换了我的要求中的django-haystack == 2.4.1并开始工作。