2016-06-09 39 views
1

我需要一些幫助來解決我正面臨的問題,我似乎無法弄清楚問題所在。基本上,我有一個搜索功能,應該返回一個'沒有輸入!如果條目是空白的。但是,它不起作用。空白搜索不會在Django中返回錯誤

fyi這是一本書masteringDjango的例子 - 類似但不是100%相同。我下面的代碼:

搜索功能

def search(request): 
    if 'title' in request.GET: 
     message = 'You searched for: %r' % request.GET['title'] 
    else: 
     message = 'nothing entered!' 
    return HttpResponse(message) 

搜索表單

<form class="form-inline pull-xs-left" role="search" method="GET" action="/search/"> 
    <input class="form-control" type="text" name="title" placeholder="Search"> 
    <button class="btn btn-success-outline" type="submit">Search</button> 
    </form> 

urls.py

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

待辦事項讓我知道是否需要更多信息。我仍然在學習每一步,非常感謝!

+0

您是否嘗試過設置一個斷點或找什麼是得到? – Sayse

+0

是的,我有我的意見,並進入得到。如果它是空白標題='',並且它仍然正常通過。下面的作品由Maxime B提出。謝謝Sayse! –

回答

3

由於您的輸入類型爲text,因此即使爲空,始終也會發送title輸入。因此,您的視圖收到這樣的內容:

request.GET['title'] = '' 

你必須檢查輸入的內容,這裏的一些代碼:

def search(request): 
    if 'title' in request.GET and request.GET['title']: 
     message = 'You searched for: %r' % request.GET['title'] 
    else: 
     message = 'nothing entered!' 
    return HttpResponse(message) 
+0

我想你不希望在'request.GET ['title']前加''不對'' –

+1

對不起,得到了一個布爾混淆:D –

+0

它的作品謝謝!堆棧溢出是真棒:) –