Django之ORM正反向查询

摘要:
Django之ORM正反向查询在orm查询中,一般分为正向查询和反向查询。举例如下:查找出版社为出版社1的图书。obj=models.Book.objects.filter反向查询则是与之相反,从少的一次出发进行查找。因为_set为默认的,当设置了related_name以后就会覆盖掉_set这个用法法导致无法使用。related_name就是为了方便反向查询而设置的。
Django之ORM正反向查询

在orm查询中,一般分为正向查询和反向查询。至于什么是正向查询和反向查询,还要从表关系说起。
举个简单的例子,就拿图书和出版社来说,一般一个图书只有一个出版社,但是一个图书一般有多个图书,外键关系一般建立在多的一侧,也就是说,外键关系是建立在图书的表模型中的。
image
而正向查询就是从多的一侧出发,即图书表出发去查找。举例如下:查找出版社为出版社1的图书。

obj = models.Book.objects.filter(publisher__name='出版社1')

反向查询则是与之相反,从少的一次出发进行查找。反向查询操作如下:

obj = models.Publisher.objects.get(id=1)  # 假设出版社1的id为1
obj.book_set.all()
  • 方式一
    image
  • 方式二
    image
    当设置了related_name以后就无法使用_set这个用法。因为_set为默认的,当设置了related_name以后就会覆盖掉_set这个用法法导致无法使用。related_name就是为了方便反向查询而设置的。

免责声明:文章转载自《Django之ORM正反向查询》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇发布订阅模式的非委托实现【转】shell命令中>/dev/null 2>&1的实现原理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

django数据导入

import os #导入数据库用 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "hmd_1.settings") ''' Django 版本大于等于1.7的时候,需要加上下面两句 import django django.setup() 否则会抛出错误 django.core.exceptions.A...

Django model update的各种用法介绍

Django开发过程中对表(model)的增删改查是最常用的功能之一,本文介绍笔者在使用model update过程中遇到的那些事 model update常规用法 假如我们的表结构是这样的 class User(models.Model): username = models.CharField(max_length=255, unique=Tr...

利用django框架,手把手教你搭建数据可视化系统(一)

如何使用django去构建数据可视化的 web,可视化的结果可以呈现在web上。 使用django的MTV模型搭建网站 基础铺垫—MTV模型 Created with Raphaël 2.1.0Request服务器(Djangoweb)Response 首先,要搞清楚我们去访问服务器,服务器返回信息的行为。 1)Request向服务器(Djangoweb)...

Django第四章、 url配置

目录 一 URL配置 基本格式 参数说明 二 正则表达式详解 基本配置 注意事项 补充说明 三 分组命名匹配 URLconf匹配的位置 捕获的参数永远都是字符串 视图函数中指定默认值 include其他的URLconfs(也叫URL分发) 一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Djang...

REST FRAME WORK--认证 权限 Xadmin

目录 1. 认证Authentication 2. 权限Permissions 使用 全局设置 局部配置 提供的权限 举例 自定义权限 3. 限流Throttling 使用可选限流类 实例 4. 过滤Filtering 5. 排序 6. 分页Pagination可选分页器 7. 异常处理 ExceptionsREST fra...

django 后台格式化数据库查询出的日期

在项目中,我遇到这样的情况,使用ajax获取查询出来的数据,而这些数据中某个字段是日期datetime格式,在模板中显示的样式很怪异。由于前端使用了js控件,也不能使用django的模板过滤器。 所以这种情况下,我想将日期从数据库中查询出来就使用固定好的格式。 django 中直接执行sql语句查询 from django.db import connec...