如下模型:

class Book(models.Model):
name = models.CharField(max_length=100)
pages = models.IntegerField()
price = models.FloatField()
author = models.ForeignKey('Author',on_delete=CASCADE)
class Meta:
db_table='book'
class Author(models.Model):
author=models.CharField(max_length=100)
class Meta:
db_table='author'

按书的价格排序(默认升序):books=Book.objects.order_by('price')

按书的价格倒序排序:books=Book.objects.order_by('-price')

按书的价格和页数升序排序:books=Book.objects.order_by('price','pages')

多个 order_by,后面会把前面的排序规则打乱,而使用后面的排序方式,比如下面这个,会根据作者的名字进行排序,而不是使用文章的创建时间排序

articles = Article.objects.order_by("create_time").order_by("author__name")

 

django F表达式、Q表达式、annotate、order_by的更多相关文章

  1. django2外键,F表达式,Q表达式

    一对多 环境 两个类:书的类别和文章,一片文章只能有一个作者,一个作者可以有多个文章,这之间组成了一对多的关系 class Category(models.Model): category = mod ...

  2. django F与Q查询 事务 only与defer

    F与Q 查询 class Product(models.Model): name = models.CharField(max_length=32) #都是类实例化出来的对象 price = mode ...

  3. Django F查询Q查询Only与Defel

    F/Q查询 测试表 from django.db import models # Create your models here. class MyCharField(models.Field): d ...

  4. django F和Q 关键字使用

    F 的使用: 想给表里每个价格加上一百就要用上F,直接加是不行的.

  5. 聚合函数与F/Q表达式

    聚合函数 取名: field + __ + 聚合函数名字 ,如:price__avg:可传关键字参数修改名字:avg=Avg("price"): aggregate:不会返回一个  ...

  6. Django F()表达式

    Django F()表达式 一个F()对象代表一个模型字段的值或注释列.使用它可以直接引用模型字段的值并执行数据库操作而不用把它们导入到python的内存中. 相反,Django使用F()对象生成一个 ...

  7. django的F和Q对象

    F表达式和Q表达式: # 示例模型如下 class Book(models.Model): """图书模型""" name = models ...

  8. Django基础(5) ----基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询

    一.基于双下划线的跨表查询 Django 还提供了一种直观而高效的方式在查询(lookups)中表示关联关系,它能自动确认 SQL JOIN 联系.要做跨关系查询,就使用两个下划线来链接模型(mode ...

  9. 77.Q表达式详解

    Q表达式可以包裹查询条件,可以在多个条件之间进行操作:与或非等.Q表达式一般会放在filter()中进行使用,F表达式一般是放在update()中进行使用. 定义模型的models.py文件中,示例代 ...

  10. django 中的聚合和分组 F查询 Q查询 事务cookies和sessions 066

    1 聚合和分组 聚合:对一些数据进行整理分析 进而得到结果(mysql中的聚合函数) 1aggregate(*args,**kwargs) : 通过对QuerySet进行计算 ,返回一个聚合值的字典. ...

随机推荐

  1. mybatis test条件判断 如何引用 传入的 list参数中的map中的值

    <select id="query" resultType="map"> select * from ${tbName} <where> ...

  2. 致敬金庸:武侠版编程语言...Java像张无忌还是令狐冲?

    我就喜欢这样,等新闻消失,热点过去,人们快要遗忘的时候, 用自己的方式,想起他.让他被人想起. 短评:夫千里之远,不足以举其大:千仞之高,不足以举其深.<倚天屠龙记> 短评:这世间和张三丰 ...

  3. JS发送短信验证码

    <div> <input type="tel" id="mobile" name="mobile" placeholder ...

  4. UGUI之Slider使用,制作血条

    用Slider来控制Cube旋转 Slider是滑动条.

  5. Linux 重启nginx

    重启 1.验证nginx配置文件是否正确 方法一:进入nginx安装目录sbin下,输入命令./nginx -t 看到如下显示nginx.conf syntax is ok nginx.conf te ...

  6. obv15 实例6:如果K线柱过多,ZIG将发生变动,导致明显的OBV15指标被隐藏!

    obv

  7. VS VC 读取 INI文件

    1.获取应程序同极目录下的config.ini路劲 void GetConfigFilePath(char *path,int len, char *file) { char module[256] ...

  8. Android -- RecyclerView实现左滑删除

    1,在实际项目中我们常常有对一个列表进行滑删除操作,使用我们昨天的ItemTouchHelper其实也可以实现简单的实现这个功能,先来看一下使用ItemTouchHelper来实现的效果: 2,从上面 ...

  9. VS2013打包程序步骤

    VS自带的打包程序默认是没有安装的,如果有打包的需要,需要自己去下载一个安装程序  1.右击解决方案,选择添加项目,在打开的对话框中找到[已安装]-[模板]-[其他项目]-[安装和部署],如图示.第一 ...

  10. Rpgmakermv(7) Chronus插件介绍翻译

    协议:MIT 作用:时间,有时间推进,可以设置速度,随着游戏中时间的推进,会发生昼夜改变和天气变化. ------------------------------------------------- ...