在赋值之前引用的局部变量'results'

时间:2012-08-23 02:54:09

标签: solr search-engine elasticsearch django-haystack

我想检索elasticsearch index文件夹下的所有索引。我收到了这个错误。

UnboundLocalError at /tjobfucksearch/

local variable 'results' referenced before assignment

my views.py

from haystack.query import SearchQuerySet
def fucksearch(request):

    query = request.GET.get('q', '')
    if query:
        results = SearchQuerySet().all()

    return render_to_response("tjob/fucksearch.html", {
        "results": results,
        "query": query
    })

my urls.py

url(r'^tjobfucksearch/$', 'tjob.views.fucksearch'),

Plus:haystack 2.0.0,django 1.4 任何意见,将不胜感激。 Plz帮助我。

1 个答案:

答案 0 :(得分:1)

考虑没有提供q参数的情况。然后query设置为''if query条件失败,因此未设置结果(甚至未设置为None; Python不知道名称{{ 1}}此时)。因此,当您尝试从results获取值以将其传递到results的上下文字典时,它会失败。也许补充一下:

render_to_response

之前:

results = None

这样,if query: .... 将始终由您需要传递给渲染的时间定义。 (您仍然需要在模板中处理无结果案例!)