如何在 Django 中的多个列上搜索多个关键字

Posted

技术标签:

【中文标题】如何在 Django 中的多个列上搜索多个关键字【英文标题】:How to search for multiple keywords over multiple columns in Django 【发布时间】:2017-09-18 20:32:31 【问题描述】:

我希望能够像这样输入字符串列表:

["searchterm1", "searchterm2", "searchtermN"]

并且从数据库中输出所有行,其中"searchterm1" 匹配其中一列 "searchterm2" 匹配其中一列等等。

有办法吗?

【问题讨论】:

你可以使用djangoQ进行查询或查询 【参考方案1】:
from django.db.models import Q

def search(request):

    list_ = ["searchterm1", "searchterm2", "searchtermN"]

    q_object = Q(title__icontains=list[0]) | Q(description__icontains=list[0])

    for item in list_[1:]:
        q_object.add((Q(title__icontains=item) | Q(description__icontains=item)), q_object.connector)

    queryset = Product.objects.filter(q_object)

reference1 reference2

【讨论】:

以上是关于如何在 Django 中的多个列上搜索多个关键字的主要内容,如果未能解决你的问题,请参考以下文章

在 Django 中,正确地制作具有多个类别、多个标签和搜索的查询集?

如何使用 MYSQL 中的连接从多个表中获取多个列并在非空列上显示数据以及在空列上显示 null 或零

如何让 django 中的 Q 查找查找多个值

如何在 Google Big Query 中的多个列上执行模式功能

如何在单个列上使用 groupby 并对 Pandas 中的多个列进行比较?

多个模型中的 Django 搜索字段