空白搜索不会在Django中返回错误

时间:2016-06-09 16:29:26

标签: python django

我需要帮助解决我遇到的问题,我似乎无法弄清楚问题。基本上,我有一个搜索功能,应该返回一条消息“没有输入!”如果条目为空白。但是,它不起作用。

这是一本来自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'),
]

如果需要更多信息,请告诉我。我还在学习每一步,非常感谢!

1 个答案:

答案 0 :(得分: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)