django搜索框模糊查询
时间: 2023-09-03 08:15:48 浏览: 140
Unity搜索框,模糊查询
5星 · 资源好评率100%
在 Django 中,可以使用 Q 对象和搜索框中的关键字完成模糊查询。Q 对象提供了一种灵活的方式来构建复杂的查询表达式。
假设有一个模型叫做 `Book`,其中包含字段 `title` 和 `author`。我们想要在搜索框中输入一个关键字,并对这两个字段进行模糊查询。可以使用以下代码实现:
```python
from django.db.models import Q
from .models import Book
def search(request):
query = request.GET.get('q')
if query:
results = Book.objects.filter(Q(title__icontains=query) | Q(author__icontains=query))
else:
results = []
return render(request, 'search.html', {'results': results})
```
在上面的代码中,首先从请求中获取搜索关键字。如果搜索关键字存在,则使用 `filter()` 方法过滤出包含关键字的书籍。使用 `Q()` 对象生成两个查询表达式,一个是 title 包含关键字的表达式,另一个是 author 包含关键字的表达式。使用 `|` 运算符将这两个表达式合并为一个,使用 `icontains` 来进行不区分大小写的模糊匹配。
最后,将结果传递给模板进行渲染。
阅读全文