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

本文共 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

你可能感兴趣的文章
【转】 学习ios(必看经典)牛人40天精通iOS开发的学习方法【2015.12.2
查看>>
在 ASP.NET MVC 中使用异步控制器
查看>>
SQL语句的执行过程
查看>>
详解Linux中Load average负载
查看>>
HTTP 协议 Cache-Control 头——性能啊~~~
查看>>
PHP遍历文件夹及子文件夹所有文件
查看>>
WinForm程序中两份mdf文件问题的解决
查看>>
程序计数器、反汇编工具
查看>>
Android N: jack server failed
查看>>
如何将lotus 通讯簿导入到outlook 2003中
查看>>
WinForm 应用程序中开启新的进程及控制
查看>>
js replace,正则截取字符串内容
查看>>
Thinkphp5笔记三:创建基类
查看>>
查询反模式 - GroupBy、HAVING的理解
查看>>
Android中EditText,Button等控件的设置
查看>>
TextKit简单示例
查看>>
网格最短路径算法(Dijkstra & Fast Marching)(转)
查看>>
软链接和硬链接详解
查看>>
Redis_master-slave模式
查看>>
彻底卸载删除微软Win10易升方法
查看>>