django - 为什么搜索功能在 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('searchBook', '')
context={
'data': Book.objects.filter(bookname__contains=searchName)
}
return render(request, 'library_site/home.html',context)
推荐阅读
- php - 为空描述显示 Woocommerce 产品页面默认描述
- android - 如何使用 Storage Access Framework android 将文件保存到下载文件夹?
- python-3.x - Odoo 12 - 生成和下载 CSV 文件
- bash - 文件不是通过 bash 脚本添加到 zip 中,而是在终端的命令行中工作
- c# - c#如何将标签传递给匿名表单
- javascript - 简单的 addEventlistener 不起作用我不知道如何解决它
- ios - 我试图为我的应用程序实现启动画面,因为它需要从 api 将数据加载到应用程序中
- sql - SQL 筛选列中其他列中的值正在更改的列
- vue.js - 在 Vue 组件中使用匿名函数作为事件处理程序
- python-3.x - 如何使用python将复杂的字典放入表中