将Django Q对象查找组合到一个Fi中

2024-10-02 08:16:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Q对象的查找有一个问题,但是当用户搜索多个词时,除非所有词都在同一个对象中,否则搜索不会返回任何结果。你知道吗

如果您转到https://www.soledadmemorial.com/plaques并搜索David S Hackley,则搜索不会返回任何结果,但如果您只搜索David S,则会得到一个结果。你知道吗

我尝试过像(Q(first_name__icontains=query), Q(last_name__icontains=query))那样组合过滤器,但只得到一个错误。下面是我目前的代码。它不需要从多个对象组合搜索。你知道吗

...
if query:
   queryset_list = queryset_list.filter(
     Q(first_name__icontains=query) |
     Q(last_name__icontains=query) |
     Q(branch__icontains=query) |
     Q(rank__icontains=query) |
     Q(group__group_name__icontains=query) |
     Q(veteran__name__icontains=query)
).distinct()
...

Tags: 对象用户namehttpscomwwwgroupquery
1条回答
网友
1楼 · 发布于 2024-10-02 08:16:56

icontains作为

ILIKE '%query_text%'

当你搜索大卫S时,它会发现它是你的名字。你知道吗

你没有

ILIKE '%David S Hackley%' 

作为数据库中的任何列,所以icontains不会在这里这样做。你知道吗

你应该考虑使用SearchVector(postgres)甚至haystack

相关问题 更多 >

    热门问题