0

elasticsearch インデックス フォルダーの下にあるすべてのインデックスを取得したいと考えています。このエラーが発生しました。

UnboundLocalError at /tjobfucksearch/

local variable 'results' referenced before assignment

私の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
    })

私のurls.py

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

プラス: haystack 2.0.0、django 1.4 アドバイスをいただければ幸いです。助けてください。

4

1 に答える 1

1

qパラメータが指定されていない場合を考えてみましょう。次にqueryが に設定され''if query条件が失敗したため、結果は設定されません ( に設定されていません。この時点でNoneは、Python は名前を認識していません)。そのため、から値を取得してコンテキスト dict for に渡そresultsうとすると失敗します。おそらく追加します:resultsrender_to_response

results = None

前:

if query:
    ....

このようにresultsして、レンダリングに渡す必要がある時間によって常に定義されます。(テンプレートで結果のないケースを処理する必要があります!)

于 2012-08-23T11:18:35.543 に答える