2012-08-23 2 views
0

elasticsearch index 폴더 아래의 모든 인덱스를 검색하려고합니다. 이 오류가 있습니다.할당 전에 로컬 변수 'results'가 참조되었습니다.

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'), 

플러스 : 건초 더미 2.0.0가, 어떤 조언을 주시면 감사하겠습니다 1.4 장고. Plz 도와주세요.

답변

1

q 매개 변수가 제공되지 않는 경우를 고려하십시오. 그런 다음 이 ''으로 설정되면 if query 조건이 실패하므로 결과가 설정되지 않습니다 (심지어 None으로 설정되지 않음, Python은이 시점에서 results에 대해 알지 못합니다). 따라서 results의 값을 render_to_response의 컨텍스트 dict에 전달하려고하면 오류가 발생합니다. 아마도 추가 :

results = None 

전에 :

if query: 
    .... 

이 방법은, results는 항상 렌더링에 전달하는 데 필요한 시간으로 정의됩니다. (여전히 템플릿의 결과가없는 경우를 처리해야합니다!)

+0

감사합니다. @joeln. 템플릿으로 처리하는 방법은? {쿼리 % % 경우} {page.object_list의 %의 결과에 대한 %가} {{result.object.title}}이 는 {% 빈 %가}

아니오

{% ENDFOR %} 나는 '돈 –

+0

결과 말하기에 충분한 정보를 가지고 있지만 위의'page.object_list %}의 결과에 대한 % '대신'{결과의 결과 % %}'와 같은 문맥 변수를 정의해야합니다. – joeln

관련 문제