extra 实现 别名,条件,排序等
extra 中可实现别名,条件,排序等,后面两个用 filter, exclude 一般都能实现,排序用 order_by 也能实现。我们主要看一下别名这个
比如 Author 中有 name, Tag 中有 name 我们想执行
SELECT name AS tag_name FROM blog_tag;
这样的语句,就可以用 select 来实现,如下:
In [44]: tags = Tag.objects.all().extra(select={‘tag_name’: ‘name’})
In [45]: tags[0].name
Out[45]: u’Django’
In [46]: tags[0].tag_name
Out[46]: u’Django’
我们发现 name 和 tag_name 都可以使用,确认一下执行的 SQL
In [47]: Tag.objects.all().extra(select={‘tag_name’: ‘name’}).query.str()
Out[47]: u’SELECT (name) AS “tag_name”, “blog_tag”.”id”, “blog_tag”.”name” FROM “blog_tag”’
我们发现查询的时候弄了两次 (name) AS “tag_name” 和 “blog_tag”.”name”
如果我们只想其中一个能用,可以用 defer 排除掉原来的 name (后面有讲)
In [49]: Tag.objects.all().extra(select={‘tag_name’: ‘name’}).defer(‘name’).query.str()
Out[49]: u’SELECT (name) AS “tag_name”, “blog_tag”.”id” FROM “blog_tag”’
也许你会说为什么要改个名称,最常见的需求就是数据转变成 list,然后可视化等,我们在下面一个里面讲。
extra 实现 别名,条件,排序等相关推荐
- Swift之深入解析如何进行多重条件排序
一.前言 在一个条件或者单个属性上进行排序非常简单, Swift 本身就有相关的功能. 如下所示,对 int 数组进行排序的例子: let numbers = [3, 5, 6, 1, 8, 2] l ...
- python 排序 sorted 如果第一个条件 相同 则按第二个条件排序
python 排序 sorted 如果第一个条件 相同 则按第二个条件排序 怎样遍历一个list 符合下列条件 1. 按照元组的第一个从小到大排序 2. 如果第一个相同 则按照元组第2个从大到小 ...
- python多条件排序
多条件排序及itemgetter的应用 曾经客户端的同事用as写一大堆代码来排序,在得知Python排序往往只需要一行,惊讶无比,遂对python产生浓厚的兴趣. 之前在做足球的积分榜的时候需要用到多 ...
- python中升序降序问题_飘逸的python - 有的升序有的降序的情况下怎么多条件排序...
之前在统计导出各区服玩家消费的时候需要进行升序降序混搭的多条件排序. 需求是这样的.区服从小到大排,如果区服相同,则按消费从大到小排. 实现方法是利用python的sort算法是稳定排序,对数据进行多 ...
- python 多条件 选择 算法_浅析Python中的多条件排序实现
多条件排序及itemgetter的应用曾经客户端的同事用as写一大堆代码来排序,在得知Python排序往往只需要一行,惊讶无比,遂对python产生浓厚的兴趣. 之前在做足球的积分榜的时候需要用到多条 ...
- 数组多重筛选条件排序方法
根据一个或者多个属性对数组进行排序,支持嵌套的属性.而且可以在每个条件中指定排序的方向,并支持传入比较函数. 安装 采用 npm 安装: $ npm install --save arr-sort 复 ...
- php,tp5关键词,分词模糊查询并根据查询条件排序
php,tp5关键词,分词模糊查询并根据查询条件排序 1.大概需求是我这边搜索"维修工",需要先搜索维修工再搜索维修,用一般模糊查询的话会导致维修的词出不来,所有这边需要先进行分词 ...
- Order by 多条件排序
首先了解一下基础知识: order by可以按一个或多个(最多16个)字段排序查询结果,可以是升序(ASC)也可以是降序(DESC),如果缺省,则是升序. order by中如果定义了多个字段,则按照 ...
- python sort多条件排序
单条件 sort / sorted 1.常规不多讲,a.sort() 在a原地排序,排序后a顺序改变, sorted(a)返回排序后的序列,a本身顺序不改变.可选为reverse, True标识倒序, ...
- Comparator.comparing嵌套对象倒序以及多重条件排序
一.嵌套对象倒序的正确书写方式 描述:对象A内部封装对象B,根据B的字段做倒排 Comparator<User> ageDescCom = Comparator.comparing(tem ...
最新文章
- 四个Webix实例:生成多种类型的JavaScript列表
- No identifier specified for entity
- Linux 静态库 动态库
- C# Hook原理及EasyHook简易教程
- Linux系统无线网络抓包程序(分析手机WIFI MAC地址)
- blog微服务架构代码_Spring Cloud微服务架构代码结构详细讲解
- 一步步实现SDDC--多角色服务器部署
- Python的第三方库requests
- Vue+Vue Router+Vuex页面演示
- zabbix4.0 mysql本地数据库迁移到腾讯云数据库
- Silverlight访问WCF双工通信的官方例子
- 零基础的人也能学好C++
- python转bat_bat 转换为python
- 影视大全android,影视大全下载-影视大全 安卓版v3.4.6-PC6安卓网
- Aria2+Rclone教程
- Niushop 砸金蛋营销活动
- laravel 查询语句
- 计算机网络英语形容词,英语常用形容词有哪些
- 20210918 【双击excel文件,看不到文件内容,只有灰蒙蒙的一片】的解决办法
- java公路车组装教程_自行车DIY入门教程,图文展示自行车组装全过程。(原创图文,转载请注明出处)...