博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
064:ORM查询条件详解-in和关联模型查询
阅读量:6279 次
发布时间:2019-06-22

本文共 957 字,大约阅读时间需要 3 分钟。

ORM查询条件详解-in和关联模型查询:

in:

提取那些给定的 field 的值是否在给定的容器中。容器可以为 list 、 tuple 或者任何一个可以迭代的对象,包括 QuerySet 对象。示例代码如下:

result = Article.objects.filter(id__in=[1,4,5])

以上代码在翻译成 SQL 语句为如下:

SELECT `article`.`id`, `article`.`title`, `article`.`content`, `article`.`category_id` FROM `article` WHERE `article`.`id` IN (1, 4, 5)

实例截图如下:

当然也可以传递一个 QuerySet 对象进去。示例代码如下:

# 所有标题中包含fuck的分类:    articles = Article.objects.filter(title__icontains='fuck')    results = Category.objects.filter(article__in=articles)    for item in results:        print(item)    print("#########以下是对应的SQL语句#########")    print(results.query)

以上代码的意思是获取那些文章标题包含 hello 的所有分类。将翻译成以下 SQL 语句,示例代码如下:

SELECT `category`.`id`, `category`.`name` FROM `category` INNER JOIN `article` ON (`category`.`id` = `article`.`category_id`) WHERE `article`.`id` IN (SELECT U0.`id` FROM `article` U0 WHERE U0.`title` LIKE %fuck%)

具体截图如下:

related_query_name的书写方式:

 

 

 

转载于:https://www.cnblogs.com/zheng-weimin/p/10230245.html

你可能感兴趣的文章
机智云开源框架初始化顺序
查看>>
Spark修炼之道(进阶篇)——Spark入门到精通:第五节 Spark编程模型(二)
查看>>
一线架构师实践指南:云时代下双活零切换的七大关键点
查看>>
ART世界探险(19) - 优化编译器的编译流程
查看>>
玩转Edas应用部署
查看>>
music-音符与常用记号
查看>>
sql操作命令
查看>>
zip 数据压缩
查看>>
Python爬虫学习系列教程
查看>>
【数据库优化专题】MySQL视图优化(二)
查看>>
【转载】每个程序员都应该学习使用Python或Ruby
查看>>
PHP高级编程之守护进程,实现优雅重启
查看>>
PHP字符编码转换类3
查看>>
rsync同步服务配置手记
查看>>
http缓存知识
查看>>
Go 时间交并集小工具
查看>>
iOS 多线程总结
查看>>
webpack是如何实现前端模块化的
查看>>
TCP的三次握手四次挥手
查看>>
关于redis的几件小事(六)redis的持久化
查看>>