django 多条件模糊搜索
时间: 2023-07-26 15:26:21 浏览: 110
在 Django 中进行多条件模糊搜索可以通过 Q 对象和多个 filter 函数实现。以下是一个示例代码:
```python
from django.db.models import Q
def search(request):
query = request.GET.get('q')
if query:
query_list = query.split()
result = MyModel.objects.filter(
Q(name__icontains=query_list[0]) | Q(description__icontains=query_list[0])
)
for query in query_list[1:]:
result = result.filter(
Q(name__icontains=query) | Q(description__icontains=query)
)
else:
result = MyModel.objects.all()
return render(request, 'search.html', {'result': result})
```
这个例子中,我们首先将用户输入的搜索词按空格分割成一个列表 `query_list`,然后使用第一个元素来初始化查询结果 `result`。接下来,我们使用循环逐个处理剩下的搜索词,将结果不断筛选,最终得到符合所有条件的结果。注意,在每次迭代中需要使用 `filter` 函数对 `result` 进行更新,否则会得到错误的结果。同时,我们使用 `Q` 对象来实现多个条件的或操作,即 `name` 或 `description` 包含搜索词。
希望这个例子能够帮助你解决问题。
阅读全文
相关推荐


















