如何使用“AND” 在 Django 过滤器中?
如何创建“AND”过滤器来检索 Django 中的对象? 例如,我想检索在单个字段中包含两个单词组合的行。
例如,当我在 mysql 数据库上运行以下 SQL 查询时,它完全执行此操作:
SELECT * FROM myapp_question
WHERE ((question LIKE '%software%') AND (question LIKE '%java%'))
How do you finish this in Django usingfilters?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
为了彻底起见,我们只提一下
Q
对象方法:请注意,这里的其他答案更简单,更适合您的用例,但如果有人遇到类似但稍微复杂的问题(例如需要“不”或“或”)看到这一点,很高兴在这里有参考。
For thoroughness sake, let's just mention the
Q
object method:Note the other answers here are simpler and better adapted for your use case, but if anyone with a similar but slightly more complex problem (such as needing "not" or "or") sees this, it's good to have the reference right here.
(更新:这个答案将不再有效,并给出语法错误
关键字参数重复
)更新:自从我写这个答案并完成以来已经很长时间了一些 django,但我确信目前最好的方法是使用 Q 对象方法,如 David Berger 所示:如何使用并且在 Django 过滤器中?
(update: this answer will not work anymore and give the syntax error
keyword argument repeated
)update: Long time since I wrote this answer and done some django, but I am sure to this days the best approach is to use the Q object method like David Berger shows here: How do I use AND in a Django filter?
您可以在 Django 中链接过滤器表达式:
您可以在 Django 文档中找到更多信息,网址为“链接过滤器”。
You can chain filter expressions in Django:
You can find more info in the Django docs at "Chaining Filters".
您可以将
AND
与 filter() 使用&
或 Q() 和&
如下所示:You can use
AND
with filter() using&
or Q() and&
as shown below: