0
目前我有一个非常简单的搜索选项,它可以浏览我的页面,并通过几个字段查找请求的查询。如果我在其中输入一个单词,它就可以正常工作,但是如果我在搜索查询中输入多个单词,即使单个页面包含所有属性,也不会收到任何内容。例如,如果我搜索test admin
,即使有一个包含标题测试的页面,内容测试和作者管理员也不会收到空查询。有没有一种方法可以扩展搜索以单独查找搜索查询中的每个单词?如何在Django中进行Q查找查找多个值
# Fetch all pages and sort them alphabetically
queryset = Page.objects.all().filter(archived=False).order_by("title")
# Get search query if applicable
query = request.GET.get("q")
if query:
queryset = queryset.filter(
Q(title__icontains=query) |
Q(content__icontains=query) |
Q(user__username__icontains=query) |
Q(user__first_name__icontains=query) |
Q(user__last_name__icontains=query)
).distinct()
好了,花了几天的时间在这个问题上停滞不前,我决定用一个包来代替。 Haystack似乎完美地完成了这项工作。我对使用软件包犹豫不决的原因是,这个项目也是我自己从头开始学习django并自行开发应用程序的方式。然而,搜索整个网站及其所有应用程序的内容是非常复杂的,现在我将使用pacakge,稍后留下搜索和索引。谢谢你的建议。 – Ablivion