我有一个 django 视图,可以在我的数据库中搜索包含用户在表单上提交的文本的名称。
当我使用搜索时,我会根据每条记录的和字段.filter
检查用户查询。一切正常,但我的问题是,如果用户在搜索框中输入带有空格的全名(例如,“John Smith”而不是“john”或“smith”,我的函数将不返回任何结果!first_name
last_name
这一切都很新,我不确定我将如何改变功能甚至形式。我可能只是懒惰并阻止他们输入空格键(我认为这是可能的)或其他东西,但我想了解我的问题的实际解决方案?
这是表单和视图,它们非常简单:
<form action="/Speakers/Search" method="get">
<input type="text" name="q">
<input type="submit" value=" Search ">
</form>
完整的附带问题:刚刚意识到,因为我一直在使用带换行的文本编辑器,我忘记了我仍然不知道在 python 中添加换行符在哪里“安全”?重要的是缩进吗..?所以很抱歉不得不滚动下面的代码:
def SearchSpeakers(request):
if 'q' in request.GET and request.GET['q']: #2nd condition return false if emtpy string
search = request.GET['q']
message = "You searched for: %s." % search
results = Speaker.objects.filter(Q(first_name__icontains=search) | Q(last_name__icontains=search))
if not results: #returned empty
message += " We could not find the name you entered in our Speakers List but you check back again before the event! Press clear to see the complete list again."
return render_to_response('Speakers.html', {'speakers':results, 'query': message})
else:
message = "You did not enter a name."
return render_to_response('Speakers.html',{'query':message})