2012-05-22 34 views
5

我我的Ubuntu的服務器上使用django-haystackWhoosh並發現某些搜索查詢只是提出一個錯誤頁,我不知道爲什麼會這樣......Django的草堆隨機錯誤使用嗖

我使用下面的人

Whoosh==2.4.0 
django-haystack==1.2.7 

而且我也跑python manage.py update_index每小時一次

例回溯

Traceback (most recent call last): 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response 
    response = callback(request, *callback_args, **callback_kwargs) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/newrelic-1.2.0.246/newrelic/hooks/framework_django.py", line 430, in __call__ 
    return self.__wrapped(*args, **kwargs) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/haystack/views.py", line 50, in __call__ 
    return self.create_response() 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/haystack/views.py", line 145, in create_response 
    return render_to_response(self.template, context, context_instance=self.context_class(self.request)) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/shortcuts/__init__.py", line 20, in render_to_response 
    return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/loader.py", line 188, in render_to_string 
    return t.render(context_instance) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 123, in render 
    return self._render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/newrelic-1.2.0.246/newrelic/api/function_trace.py", line 82, in __call__ 
    return self._nr_next_object(*args, **kwargs) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 117, in _render 
    return self.nodelist.render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 757, in render_node 
    return node.render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 127, in render 
    return compiled_parent._render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/newrelic-1.2.0.246/newrelic/api/function_trace.py", line 82, in __call__ 
    return self._nr_next_object(*args, **kwargs) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 117, in _render 
    return self.nodelist.render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 757, in render_node 
    return node.render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/newrelic-1.2.0.246/newrelic/hooks/framework_django.py", line 622, in __call__ 
    return self.__wrapped(*args, **kwargs) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 64, in render 
    result = block.nodelist.render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 757, in render_node 
    return node.render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 311, in render 
    return self.nodelist_true.render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 757, in render_node 
    return node.render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 227, in render 
    nodelist.append(node.render(context)) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 915, in render 
    resolved_vars = [var.resolve(context) for var in self.vars_to_resolve] 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 653, in resolve 
    value = self._resolve_lookup(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 692, in _resolve_lookup 
    raise VariableDoesNotExist("Failed lookup for key [%s] in %r", (bit, current)) # missing attribute 

VariableDoesNotExist: Failed lookup for key [object] in u'None' 


<WSGIRequest 
GET:<QueryDict: {u'q': [u'stockholm']}>, 
+2

我注意到對Xapian運行相同的行爲,所以我不認爲它是後端相關的。你最有可能使用'highlight'標籤,因爲它的設計很差,並且當'result'爲'None'時引發了這種頑固的異常。現在爲什麼'結果'是'無'是一個完全不同的問題。這感覺就像一個錯誤。 –

+0

@ChrisPratt感謝您的迴應,我目前沒有使用突出顯示標記,但我確實發現其他人遇到這些問題並且很少知道如何修復它,這讓我非常沮喪...... – ApPeL

回答

0

請問您可以在這裏放置您的視圖和模板代碼嗎?如果這僅僅發生在一些查詢中,而不是全部發生,那麼它可能是您傳遞給視圖的參數。 下面是我使用,使我在自己的項目中使用草堆2.0和2.3.2嗖搜索查詢視圖的代碼:

def search(request): 
    sqs = SearchQuerySet().filter(content=AutoQuery(request.GET['q'])) 
return render_to_response('search.html', {'sqs': sqs,}) 

和這工作完全正常。我想你應該考慮使用Haystack的最新版本,因爲我遇到了很多老版本的bug。爲了以防萬一,我建議您稍後再使用一次「rebuild_index」。

+0

不能說OP,但至少在我的情況下:我使用Haystack提供的搜索視圖,因此沒有定製。我正在運行Haystack的主分支,並且cron作業每小時更新一次索引。但是,謝謝你的回答。就像我說過的,我不能說OP,所以你的建議最終會對他們有用。 –