【问题标题】:How to search for multiple keywords over multiple columns in Django如何在 Django 中的多个列上搜索多个关键字
【发布时间】:2017-09-18 20:32:31
【问题描述】:
我希望能够像这样输入字符串列表:
["searchterm1", "searchterm2", "searchtermN"]
并且从数据库中输出所有行,其中"searchterm1" 匹配其中一列或 "searchterm2" 匹配其中一列等等。
有办法吗?
【问题讨论】:
标签:
django
search
django-models
django-queryset
【解决方案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