【发布时间】:2017-02-22 07:42:13
【问题描述】:
我在使用 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 实际生成的查询是什么,你期望什么?
标签: python django django-templates django-views