您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

5b51 2022/1/14 8:22:57 python 字数 1339 阅读 584 来源 www.jb51.cc/python

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

概述

from django.db.models import Q
posts = 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():动态?所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶