如何组合icontains过滤器,以便它同时从一个字段和另一个字段进行搜索

问题描述 投票:1回答:1
def search(request):
    queryset_list = Listing.objects.order_by('-list_date').filter(is_published=True)

    if 'keywords' in request.GET:
        keywords = request.GET['keywords']
        if keywords:
            queryset_list = queryset_list.filter(description__icontains=keywords)
        if keywords:
            queryset_list = queryset_list.filter(realtor__name__icontains=keywords)

我希望能够同时搜索2件事。例如,如果描述包含“大”而realtor__name不是我想仍然看到realtor__name的大和相同的对象,即使描述没有它我想得到它。谢谢

python django filtering
1个回答
1
投票

看起来你需要or运算符

例如:

from django.db.models import Q


if keywords:
    queryset_list = queryset_list.filter(Q(description__icontains=keywords) |
                                         Q(realtor__name__icontains=keywords))
© www.soinside.com 2019 - 2024. All rights reserved.