空白搜索不返回Djang中的错误

2024-10-03 21:31:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一些帮助来解决我面临的一个问题,我似乎无法解决这个问题。基本上,我有一个搜索功能,它应该返回一条消息“NothingEntered!”如果条目为空。但是,它不起作用。你知道吗

仅供参考这是一个例子,从书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>

网址.py

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

如果需要更多的信息,一定要告诉我。我还在学习的路上的每一步,提前多谢!你知道吗


Tags: name功能form消息messagesearchgettitle
1条回答
网友
1楼 · 发布于 2024-10-03 21:31:24

因为您的输入是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)

相关问题 更多 >