我遇到了Q对象查找的问题,而当用户搜索多个术语时,除非所有术语都在同一个对象中,否则搜索不会返回任何内容。将Django 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()
...
我不明白你的意思是如何从多个对象 –
什么是Django的实际产生的查询结合搜索和你能指望什么呢? – spectras