在model.py中: class B1(models.Model): u1= models.CharField(max_length=32) #多 class B2(models.Model): f1 = models.CharField(max_length=32) f2= models.IntegerField() f3 = models.ForeignKey('B1') 在views.py中: #B2中 外键f3 指向B1中u1=‘x’ 的所有对象的列表 obj_list = B2.ob…
ORM跨表查询和分组查询---二次剖析 阅读目录(Content) 创建表(建立模型) 基于对象的跨表查询 一对多查询(Publish与Book) 多对多查询 (Author 与 Book) 一对一查询(Author 与 AuthorDetail) 基于双下划线的跨表查询 分组查询 多表查询 单表查询 创建表(建立模型) 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是…
一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);     一本书只应该由一个出版商出版,所以出版商和书籍是一对多关联关系(one-to-many). 创建一对一的关系:OneToOne("要绑定关系的表名") 创建一对多的关系:ForeignKey("要绑定关系的表名") 创建多对多的关系:ManyToMany("要绑定关系的表名"…
一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);     一本书只应该由一个出版商出版,所以出版商和书籍是一对多关联关系(one-to-many). 创建一对一的关系:OneToOne("要绑定关系的表名") 创建一对多的关系:ForeignKey("要绑定关系的表名") 创建多对多的关系:ManyToMany("要绑定关系的表名"…
ORM多表查询 创建表结构: from django.db import models # 创建表结构 # Create your models here. class Class_grade(models.Model): """年级表""" gid = models.AutoField(primary_key=True) gname = models.CharField(max_length=32) class Teacher(models.M…
1.正向查询和反向查询: 外键的查询操作: 正向查询: # 正向查询 # 基于对象,跨表查询 book_obj = models.Book.objects.all().first() ret = book_obj.publisher # 和我这本书关联的出版社对象 print(ret,type(ret)) ret = book_obj.publisher.name # 和我这本书关联的出版社对象的name属性 print(ret,type(ret)) # 查询id=1的书出版社名称 # 涉及到跨…
一.基于对象的查询-->子查询 1.一对多 正向查询:基于 字段 反向查询:基于 表名__set.all() 注意:表名全部小写 2.多对多 正向查询:基于 字段.all() 反向查询:基于 表名_set.all() 注意:表名全部小写 3.一对一 正向查询:基于 字段 反向查询:基于 表名 注意:表名全部小写 二.基于QuerySet的查询-->连表1.正向查找: 字段2.反向查找: 表名 注意:基于QuerySet的查找最重要的是找到基表,filter和values都可以进行跨表查找 qu…
环境准备: 表结构 from django.db import models # Create your models here. class Publisher(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=) class Book(models.Model): id = models.AutoField(primary_key=True) name = mod…
model.py from django.db import models # Create your models here. class Book(models.Model): nid = models.AutoField(primary_key=True) title = models.CharField(max_length=64) publishDate = models.DateField() price = models.DecimalField(max_digits=5, dec…
set() 更新model对象的关联对象 book_obj=models.Book.objects.first() book_obj.authors.set([2,3]) 把book_obj这个对象重新设置关联对象为作者id为2,3的对象 remove() 从关联对象中移除被执行的对象 book_obj=models.Book.objects.first() book_obj.authors.remove(3) 移除这个对象关联的id为3的作者 clear() 从关联对象集中移除一切对象. bo…