1)表操作:

1对1的时候: 反向查表的时候,不需要_set,因为只有一个.

1对多的时候,反向查表要分情况,当你想查的表是多个时,记得要加上_set,如果反向查的是一个对象的时,就不需要加上_set.

多对多的时候,反向查表一定要加上_set,因为一定是多个值.

总结,当你反向查表的时候,如果对象是一个集合,那么就要加上_set,如果不是的话,就不需要.

2)

1.查询人民邮电出版社出了多少本书

>>> Book.objects.filter(publisher__name='人民邮电出版社').count()

>>> from django.db.models import *
>>> Book.objects.filter(publisher__name='人民邮电出版社').aggregate(Count('title'))

2.查询陈吉出的书总价是多少

>>> Book.objects.filter(authors__name='陈吉').aggregate(Sum('price'))

3.查询各个作者出的书的总价格是多少

>>> Book.objects.values('authors__name').annotate(Sum('price'))

4.查询各个出版社最便宜的书价是多少

>>> Book.objects.values('publisher__name').annotate(Min('price'))

1.annotate(*args,**kwargs):可以为QuerySet中的每个对象添加注解。可以通过计算查询结果中的每个对象所关联的对象集合,从而得出总计值(也可以是平均值或总和,等等)。

用于分组查询。

2.aggregate(*args,**kwargs):通过对QuerySet进行计算,返回一个聚合值的字典,aggregate()中每个参数都可以指定一个包含在字典中的返回值。

用于聚合查询

所在位置:django.db.models

1.Avg:返回所给字段的平均值

2.Count:根据所给关联字段返回被关联model的数量。

3.Max:返回所给字段的最大值

4.Min:返回所给字段的最小值

5.Sum:计算所给字段值的总和

转载于:https://www.cnblogs.com/52forjie/p/7789313.html

django-orm的表操作.相关推荐

  1. Django ORM 单表操作

    默认使用sqllite数据库 创建表 # models.py form django.db import models class Book(models.Model): # 表名book,djang ...

  2. Django ORM – 多表实例

    文章目录 Django ORM – 多表实例 创建模型 实例 表结构 插入数据 ORM - 添加数据 一对多(外键 ForeignKey) app01/views.py 文件代码: app01/vie ...

  3. python——Django(ORM连表操作)

    千呼万唤始出来~~~当当当,终于系统要写django的ORM操作啦!!!这里记录的是django操作数据库表一对多.多对多的表创建及操作.对于操作,我们只记录连表相关的内容,介绍增加数据和查找数据,因 ...

  4. day55 django 模型层,orm连表操作

    设计表 django之orm详解: https://www.cnblogs.com/komorebi/p/11551089.html 在django中设计表 1.先在navicat中建好一个库 2.更 ...

  5. Django ORM那些相关操作

    一般操作 https://docs.djangoproject.com/en/1.11/ref/models/querysets/         官网文档 常用的操作 <1> all() ...

  6. Django ORM – 多表实例:Django模型Model的定义+模型间关系

    Django 对各种数据库提供了很好的支持,包括:PostgreSQL.MySQL.SQLite.Oracle. Django 为这些数据库提供了统一的调用API. 我们可以根据自己业务需求选择不同的 ...

  7. Django 学习 之ORM多表操作

    一.创建模型 1.模型关系整理 创建一对一的关系:OneToOne("要绑定关系的表名") 创建一对多的关系:ForeignKey("要绑定关系的表名") 创建 ...

  8. Django 【第六篇】ORM跨表操作(聚合查询,分组查询,F和Q查询等)

    一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);     一本书只应该由一个出版商出 ...

  9. Django ORM – 多表实例(聚合与分组查询)

    聚合查询(aggregate) 聚合查询函数是对一组值执行计算,并返回单个值. 聚合查询返回值的数据类型是字典. 聚合函数 aggregate() 是 QuerySet 的一个终止子句, 生成的一个汇 ...

  10. python一对一_Python - Django - ORM 一对一表结构

    当一张表的某一些字段查询的比较频繁,另外一些字段查询的不是特别频繁,可以把不怎么常用的字段 单独拿出来做成一张表,然后用一对一的表关联起来 这样既保证数据都完整的保存下来,又能保证检索更快 model ...

最新文章

  1. 11月8日学习内容整理:js的引入方式,变量数据类型,运算符,流程控制,函数...
  2. C/C++中存储类型
  3. 在Android Studio中进行代码混淆
  4. 学写网站(一)前端配置之安装nvm、node、npm
  5. Shiro框架:Shiro简介、登陆认证入门程序、认证执行流程、使用自定义Realm进行登陆认证、Shiro的MD5散列算法
  6. jsp整合mybatis案例
  7. 关于CPU的12个硬核干货!
  8. C++成员函数重载、覆盖和隐藏的区别
  9. 【转】中间语言(IL)和即时编译器(JIT)的关系剖析
  10. 四种模式、五大架构 规划企业物联网蓝图
  11. 6.跑步者--并行编程框架 ForkJoin
  12. 自定义快捷键整理 - Windows
  13. php实现条形码生成,thinkPHP框架实现生成条形码的方法示例
  14. 三角函数逼近锯齿函数和阶梯函数
  15. 使用ServiceMonitor管理配置监控
  16. 输出7和7的倍数,还有包含7的数字例如(17,27,37...70,71,72,73...)
  17. Java常用的集成开发工具Eclipse和IDEA
  18. id returned 1 existed:让人发疯的devc++报错
  19. python 贪吃蛇大作战_Python实现贪吃蛇大作战
  20. 延迟期权 matlab,时机选择期权

热门文章

  1. 护考人机对话用计算机吗,2018护士执业资格考试人机对话怎么考 有什么注意事项...
  2. 简述中断处理的6个步骤_基于SCDM软件的CFD前处理工作5个步骤
  3. java simpleentry_使用Java流生成对象
  4. c语言坐标打印佛祖,C语言输入平面上两个点的坐标(double类型),计算两个点之间的距离。看”详细“里哪里写错了谢谢...
  5. unix和linux命令_Linux / UNIX中的cp命令
  6. java 异常面试问题_Java异常面试问答
  7. junit5 动态测试_JUnit 5动态测试– @ TestFactory,DynamicTest
  8. log4j 配置文件示例_Log4j2示例教程–配置,级别,附加程序
  9. Elasticsearch的javaAPI之Query DSL-filters
  10. 开课吧:电商产品数据分析的核心目标是什么?