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

use*_*743 0 django search django-models django-queryset

我希望能够输入一个字符串列表,如下所示:

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

并输出数据库中匹配其中一列或匹配其中一列的所有行,依此类推。"searchterm1" "searchterm2"

有办法这样做吗?

Tha*_*eem 5

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)
Run Code Online (Sandbox Code Playgroud)

参考1 参考2