Django SQL OR via filter()&Q():动态?

Django SQL OR via filter()&Q():动态?,第1张

概述我正在我的Django网站上实现一个简单的LIKE搜索,我目前使用的是以下代码: from django.db.models import Qposts = Post.objects.filter(Q(title__icontains=query)|Q(content__icontains=query)) 其中query是一个字符串.这导致LIKE SQL语句并且工作正常.现在,我还想将搜索查询 我正在我的Django网站上实现一个简单的liKE搜索,我目前使用的是以下代码:
from django.db.models import Qposts = Post.objects.filter(Q(Title__icontains=query)|Q(content__icontains=query))

其中query是一个字符串.这导致liKE SQL语句并且工作正常.现在,我还想将搜索查询拆分为术语或单词:

words = query.split(' ')

所以单词现在包含单词列表,我想要实现类似于以下的SQL语句:

SELECT ... FROM foo WHERE `Title` IliKE '%word1%' OR `Title` IliKE '%word2%'  OR `content` IliKE '%word1%' OR `content` IliKE '%word2%'

如果有两个以上的单词,我希望语句增长,按每个单词列出所有条目.

有任何想法吗?谢谢!

解决方法
reduce(operator.or_,sequence_of_Q_objects)
总结

以上是内存溢出为你收集整理的Django SQL OR via filter()&Q():动态?全部内容,希望文章能够帮你解决Django SQL OR via filter()&Q():动态?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1207184.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存