【发布时间】:2020-09-01 06:10:55
【问题描述】:
record_list 是一个 Python 列表,其中包含要搜索的关键字列表。以下代码是我的 Django views.py,我在其中使用这些关键字搜索 MySQL 数据库。代码在product_name 和description 列中搜索并返回关键字给出搜索命中的整个记录。
q_object = Q(product_name__icontains=record_list[0]) | Q(description__icontains=record_list[0])
for item in record_list:
q_object.add(Q(product_name__icontains=item) & (Q(description__icontains=item)), q_object.connector)
queryset = Products.objects.filter(q_object).values().distinct()
for query in queryset:
Filtered.objects.create(**query)
搜索结果成功保存在queryset 中,我可以将查询集保存在数据库表中。但我还想将在“查询集”中提供搜索命中的关键字与相应的搜索结果一起保存。有没有办法使用 Django Q 对象来做到这一点?
【问题讨论】:
-
您在表达式
& (Q(description__icontains=item)),中可能写了一个不正确的运算符 '&' 和一个多余的括号,这与 record_list 第一项的表达式不匹配。
标签: python django django-queryset django-q