我需要帮助解决我遇到的问题,我似乎无法弄清楚问题。基本上,我有一个搜索功能,应该返回一条消息“没有输入!”如果条目为空白。但是,它不起作用。
这是一本来自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 :(得分: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)