1.编辑删除&&多对多关系的其他方法

提交,数据,得到结果

查看运行

给编辑和删除,添加样式

我们点击删除,可以成功删除

打印sql语句的,在settings.py里边的配置

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
},
},
'loggers': {
'django.db.backends': {
'handlers': ['console'],
'propagate': True,
'level':'DEBUG',
},
}
}  

删除表,先删除,第三张表,再删除book表

级联删除就是通过这样的方式进行删除的,在这里默认就是级联删除的,记住这一点,在多对一的关系中(书和出版社)

编辑数据,在这里和添加数据只相差一句话(如下图所示:)

edit_book.html和add_book.html页面结果差不多,我们进行修改就可以了

在这里我们应该回复的是edit_book.html页面

获取第n个,是为了保存已经选取的数据

在这里的编辑页面需要,指定默认的书名

需要添加一个表示用户选中的选项,

这样,我们就进行了成功的选择

怎样对多选的复选框进行,筛选?(下面的是筛选界面的一开始未修改的界面)

点击运行,编辑一下"笑傲江湖"

成功被选择中

调试,里边也是被选中的:

注意图上的很多文字描述也是很重要的概述

一些补充:

运行:

book_id对应的author_id已经修改成了2

现在我们再改回去

报错

实际情况的写法

这时候恢复了原样

注意,这个author表,,只能写1/2/5

这时候只剩下5和5的对应关系

清除id=6的对应关系

运行,

之前的数据

之后的数据:

作业:

书籍管理

作者管理

出版社管理:

  用上模板继承,相关知识(利用模板继承来实现这个工作)

2.基于双下划线的跨表查询1

多对1的正向查询

查看表的对应关系

 双下滑先记住一句话,正向按字段,反向按表名

首先连接表

在连表的基础上进行筛选

现在我们只需要publish的名字

基于双下划线,正向按字段的写法

运行,得到结果,注意这种写法,拿到的是queryset类型的数据

第一种写法是基于对象的用的是get方法,

下边的第二种写法是基于双下划线filter方法,不能用get

SQL里边叫字段,ORM写在python里边叫属性

整体代码:

查找出版社和地址两者

联表说明,谁在左,谁在右无所谓,这就说明有很多中写法

结果:

对比三者的区别

结果如下所示:

正向一对一:

结果:

结果的键,是按照values里边的筛选项作为键

大英帝国是没有作者的,所以什么都没有显示

go语言圣经的作者是"鲁智深"

作者的id是1

也就是"鲁智深"

在对应关系表中,再添加一个对应作者2"武松",查看结果

依然是这几条语句,查看作者

这时候,作者多了1个武松

升级查询

第三条语句有问题!!!

3.基于双下划线的跨表查询2

通过表之间的er图查看关系

巨蟒python全栈开发django8:基于对象和基于双下划线的多表查询的更多相关文章

  1. 巨蟒python全栈开发数据库攻略3:行记录的操作&单表查询3

    1.数据行的增删改 2.单表查询 select&where条件 3.group by&having&order by&limit

  2. python 全栈开发,Day74(基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询)

    昨日内容回顾 # 一对多的添加方式1(推荐) # book=Book.objects.create(title="水浒传",price=100,pub_date="164 ...

  3. (转)python 全栈开发,Day74(基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询)

    昨日内容回顾 # 一对多的添加方式1(推荐) # book=Book.objects.create(title="水浒传",price=100,pub_date="164 ...

  4. {django模型层(二)多表操作}一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询、分组查询、F查询和Q查询

    Django基础五之django模型层(二)多表操作 本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 xxx 七 ...

  5. Django学习——Django测试环境搭建、单表查询关键字、神奇的双下划线查询(范围查询)、图书管理系统表设计、外键字段操作、跨表查询理论、基于对象的跨表查询、基于双下划线的跨表查询

    Django测试环境搭建 ps: 1.pycharm连接数据库都需要提前下载对应的驱动 2.自带的sqlite3对日期格式数据不敏感 如果后续业务需要使用日期辅助筛选数据那么不推荐使用sqlite3 ...

  6. Django day08 多表操作 (三) 基于对象的跨表查询 基于双下划线的多表查询

    一: 基于对象的跨表查询 1. 一对一 正向: 反向: 2. 一对多 正向: 反向: 3.多对多 正向: 反向: 4.*****基于对象的多表查询 二: 基于双下划线的多表查询 1. 连表查询 一对一 ...

  7. Django框架(九)-- 多表操作:一对一、一对多、多对多的增删改,基于对象/双下划线的跨表查询、聚合查询、分组查询、F查询与Q查询

    一.创建多表模型 一对一:OneToOneField 一对多:ForeignKey 多对多:ManyToManyField 创建表时,会自动添加一个nid字段,并且自增,所以id可以不用手动创建 On ...

  8. Django框架(十)—— 多表操作:一对一、一对多、多对多的增删改,基于对象/双下划线的跨表查询、聚合查询、分组查询、F查询与Q查询

    目录 多表操作:增删改,基于对象/双下划线的跨表查询.聚合查询.分组查询.F查询与Q查询 一.创建多表模型 二.一对多增删改表记录 1.一对多添加记录 2.一对多删除记录 3.一对多修改记录 三.一对 ...

  9. Django学习——图书相关表关系建立、基于双下划线的跨表查询、聚合查询、分组查询、F查询、Q查询、admin的使用、使用脚本调用Django、Django查看源生sql

    0 图书相关表关系建立 1.5个表 2.书籍表,作者表,作者详情表(垂直分表),出版社表,书籍和作者表(多对多关系) 一对一 多对多 本质都是一对多 外键关系 3.一对一的关系,关联字段可以写在任意一 ...

随机推荐

  1. 让C#可以像Javascript一样操作Json DynamicJson

    http://blog.csdn.net/lisenyang/article/details/52535314

  2. Android短信发送器(2)

    在上一篇的<Android短信发送器>当中.发送功能并不完好.当发送内容超过限定字数时,短信就会发送失败,此时就须要推断内容是否超过限制,假设不超过限制.就直接发送,反之.则对其进行处理再 ...

  3. java泛型 7 泛型的基本介绍和使用

    现在开始深入学习Java的泛型了,以前一直只是在集合中简单的使用泛型,根本就不明白泛型的原理和作用.泛型在java中,是一个十分重要的特性,所以要好好的研究下. 一.泛型的基本概念 泛型的定义:泛型是 ...

  4. PL/SQL 异常错误处理

     异常错误处理 一个优秀的程序都应该可以正确处理各种出错情况,并尽可能从错误中恢复.ORACLE 提供异常情况(EXCEPTION)和异常处理(EXCEPTION HANDLER)来实现错误处理 ...

  5. [linux]w命令和uptime命令查看系统负载

    在Linux系统中查询系统CPU和内存的负载(使用率)时,我们通常习惯于使用top.atop或者ps,这篇文章将要给大家介绍如何使用w命令和uptime命令来查看系统的负载情况,对于uptime命令, ...

  6. Eclips中文版或汉化使用

    Eclipse简体中文包下载地址 :http://babel.eclipse.org/babel/ 在上面网站找,下载地址应该是(注意对应的版本): http://www.eclipse.org/do ...

  7. Atitit.java相比c#.net的优点 优缺点  v2 q330

    Atitit.java相比c#.net的优点 优缺点  v2 q330 1. 跨平台可在LINUX上,mac跑以外.主要如下: 1 2. IDE ECLIPSE(500m)是绿色的,换机器不用安装,C ...

  8. 用JWT技术为SpringBoot的API增加授权保护(转),需要自己实现userdetailservice接口

    转自:https://blog.csdn.net/haiyan_qi/article/details/77373900 概述 示例 https://github.com/qihaiyan/jwt-bo ...

  9. 返回当前文档的文档的url

    HTML DOM referrer 属性 HTML DOM Document 对象 定义和用法 referrer 属性可返回载入当前文档的文档的 URL. 语法 document.referrer 说 ...

  10. cp实现无提示覆盖拷贝

    在我们使用cp批量拷贝时,即使使用cp -rf ,遇到需要覆盖时,也是需要确认是否覆盖的. 解决办法1: 我们使用alias看一下别名设置会发现这样一行 alias cp='cp -i' 意思就是使用 ...