为什么搜索功能在 Django 中不起作用?
why Search function is not working in django?
在我搜索特定关键字后,Django 没有检索匹配的搜索项,而是显示所有数据。当我搜索 history
时,它显示了所有书籍,尽管我在数据库中有历史书籍。
views.py
def home(request):
if request.method == 'POST':
searchName = request.POST.get('Search')
if not searchName :
searchName = ""
context={
'data': Book.objects.filter(bookname__contains=searchName)
}
return render(request, 'library_site/home.html',context)
else:
context={
'data': Book.objects.all()
}
return render(request, 'library_site/home.html',context)
form field in html
<form method="POST" action="{% url 'home' %}">
{% csrf_token %}
<input class="search-input" type="text" name="searchBook" placeholder="Search Book Name here...">
<input class="btn" type="submit" name="search" value="Search">
</form>
您在模板中使用 name 属性 作为搜索输入 searchBook
,因此请像这样更改视图。
if request.method == 'POST':
searchName = request.POST.get('<b>searchBook'</b>, '')
context={
'data': Book.objects.filter(bookname__contains=searchName)
}
return render(request, 'library_site/home.html',context)</pre>
在我搜索特定关键字后,Django 没有检索匹配的搜索项,而是显示所有数据。当我搜索 history
时,它显示了所有书籍,尽管我在数据库中有历史书籍。
views.py
def home(request):
if request.method == 'POST':
searchName = request.POST.get('Search')
if not searchName :
searchName = ""
context={
'data': Book.objects.filter(bookname__contains=searchName)
}
return render(request, 'library_site/home.html',context)
else:
context={
'data': Book.objects.all()
}
return render(request, 'library_site/home.html',context)
form field in html
<form method="POST" action="{% url 'home' %}">
{% csrf_token %}
<input class="search-input" type="text" name="searchBook" placeholder="Search Book Name here...">
<input class="btn" type="submit" name="search" value="Search">
</form>
您在模板中使用 name 属性 作为搜索输入 searchBook
,因此请像这样更改视图。
if request.method == 'POST':
searchName = request.POST.get('<b>searchBook'</b>, '')
context={
'data': Book.objects.filter(bookname__contains=searchName)
}
return render(request, 'library_site/home.html',context)</pre>