2016-07-27 11 views
-4

views.py結果ページ

from weatherbot.models import Question 
    from django.template import RequestContext 
    from django.shortcuts import render_to_response 

    def search(request): 
     query = request.GET.get('q') 
     if query: 
      results = query 
     context = RequestContext(request) 
     return render_to_response('results.html', {"results": results,}, context_instance=context) 

urls.py

from django.conf.urls import url 
    from . import views 

    urlpatterns = [ 
url(r'^search/$', views.search, name = 'Ask for Weather Updates'),] 

search.htmlの

<form method="get" action="/search/"> 
    Search Notecards:<input type="text" name="q" id="id_q" value="{{ query }}"/> 
    <input type="submit" value="Search" /> 
    </form> 

result.htmlに印刷します

{% if results %} 
     {% for result in results %} 
     {{ result.xxxx }} 
     {% endfor %} 
    {% else %} 
    <h3 class='error'>Please enter a valid UID</h3> 
    <form method="get" action="//"> 
    Search Notecards:<input type="text" name="q" id="id_q" value="{{ query }}"/> 
    <input type="submit" value="Search" /> 
    </form> 
    {% endif %} 

は、私は何をしようとしていることresults{% for result in results %}意志ループ文字列の各文字を通じてので、文字列であり、最初の検索ボックスに質問を入力して、あなたのビューではジャンゴ

+1

ペーストビンにリンクしてインデントを修正するのではなく、実際に何が起こるか、実際に何が起こるかを詳しく説明してください。 – Alasdair

答えて

0

を使用して結果ページに表示することです文字列にxxxx属性がないため、{{ result.xxxx }}には何も表示されません。

私は単純に、テンプレートにそのループを置き換えます:あなたはrender代わりのrender_to_responseを使用するようにビューを簡素化することができます

{{ results }} 

if queryがあるので、elseステートメントにqueryも設定する必要があります。そうしないと、名前エラーが発生します。

from django.shortcuts import render 

def search(request): 
    query = request.GET.get('q') 
    if query: 
     results = query 
    else: 
     results = '' 
    return render_to_response(request, 'results.html', {"results": results,}) 

あなたはマスタリングジャンゴからforms chapterが役立つかもしれません。

+0

答えとリンクのおかげで! – Krishna

関連する問題