Django 关联对象操作及多表查询

Stella981
• 阅读 489

关联表的数据操作

一对多

正向:如果这个模型有外键字段,通过这个模型外键进行操作叫正向

Django 关联对象操作及多表查询

  通过属性复制

Django 关联对象操作及多表查询

  通过主键的方式

Django 关联对象操作及多表查询

条件增加

Django 关联对象操作及多表查询

删  只有外键设置了null=True,你就可以通过赋值None

Django 关联对象操作及多表查询

Django 关联对象操作及多表查询

 查

Django 关联对象操作及多表查询

反向

 查 通过管理器,有外键名称的小写加上__set,通过这个管理器可以查询模型类型,在定义外键的时候,通过related_name 覆盖名称

Django 关联对象操作及多表查询

Django 关联对象操作及多表查询

Django 关联对象操作及多表查询

删   clear() 清空

remove 删掉关系

Django 关联对象操作及多表查询

add remove claer 直接操作数据库

改  set

Django 关联对象操作及多表查询

多对多 

如果因为有额外字段,自定义了中间模型,我们需要通过中间模型的管理器,进行manytomany关系创建和删除

默认情况,跟一对多中的,add  create remove clear 用法一致

唯一区别  多对多正向的时候,多对多字段就是一个管理器,反向的时候,跟一对多的方向一致,模型小写加set

Django 关联对象操作及多表查询

Django 关联对象操作及多表查询

一对一

类似一对多

Django 关联对象操作及多表查询

Django 关联对象操作及多表查询

 跨表查询

Django 关联对象操作及多表查询

Django 关联对象操作及多表查询

Django 关联对象操作及多表查询

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
2年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
Nginx + lua +[memcached,redis]
精品案例1、Nginxluamemcached,redis实现网站灰度发布2、分库分表/基于Leaf组件实现的全球唯一ID(非UUID)3、Redis独立数据监控,实现订单超时操作/MQ死信操作SelectPollEpollReactor模型4、分布式任务调试Quartz应用
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
@OneToMany、@ManyToOne以及@ManyToMany讲解(五)
一、一对多(@OneToMany)1、单向一对多模型假设通过一个客户实体可以获得多个地址信息。对于一对多的实体关系而言,表结构有两种设计策略,分别是外键关联和表关联。(1)映射策略外键关联在数据库中表customer和表结构address定义,如下:createtablecustomer(
Wesley13 Wesley13
2年前
ThinkPHP 根据关联数据查询 hasWhere 的使用实例
很多时候,模型关联后需要根据关联的模型做查询。场景:广告表(ad),广告类型表(ad\_type),现在需要筛选出广告类型表中id字段为1且广告表中status为1的列表先看关联的设置部分 publicfunctionadType(){return$thisbelongsTo('A
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
4个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这