引用:https://feifeiyum.github.io/2017/03/28/python-django-queryset/ 说明 Models 层是 Django 框架中最强大的部分之一, 大大方便了 Web 层与数据层的交互.由于对 Model 层缺少系统理解,在使用 model Api 时经常需要查找文档, 在此做一次系统地整理.本文主要是对 Django Model 文档的翻译, 文档地址 说明 Models 层是 Django 框架中最强大的部分之一, 大大方便了 Web 层与数…
目录 一:表关系外键 1.提前创建表关系 2.目前只剩 书籍表和 书籍作者表没创建信息. 3.增 4.删 5.修改 二:多对多外键增删改查 1.给书籍绑定作者 2.删 3.修改 4.清空 三:正反向的概念 1.什么是正向? 2.什么是反向? 3.判断正向反向 4.查询方式 5.应用场景.all() 四:多表查询 1.子查询与联表查询 五:子查询(基于对象的跨表查询) 1.子查询(正向) 2.子查询(正向)总结 3.子查询(反向) 4.子查询(反向) 六:联表查询(基于双下划线的跨表查询) 1.v…
需要插入的数据表结构如下: class UserInfo(models.Model): user_id =models.AutoField(primary_key=True) user_name=models.CharField(max_length=20,unique=True) depart=models.ForeignKey(DepartmentInfo) role=models.ManyToManyField(Role) *注:从上述类中可以看出UserInfo除了一般的表项外,还有有一…
场景 我们用Django的Model时,有时候需要关联外键.关联外键时,参数:on_delete的几个配置选项到底是干嘛的呢,你知道吗? 参数介绍 models.CASCADE 级联删除.Django会模拟SQL约束的行为,在删除此条数据时,同事删除外键关联的对象. 比如:用户的有一个外键关联的是用户的健康记录表,当用户删除时,配置了这个参数的健康记录表中跟这个用户有关的数据也会被删除. 提醒: 级联删除不会调用model级行为,但是会为所有已删除对象发送pre_delete和 post_del…
一.内容回顾 1.Django请求的生命周期: ​ 路由系统 -> 视图函数(获取模板+数据 -> 渲染) -> 字符串返回给用户 2.路由系统: /index/ #-> 函数或类.as_view() /detail/(\d+) #-> 函数(参数) 或 类.as_view()(参数) /detail/(?P<nid>\d+) #-> 函数(参数) 或 类.as_view()(参数) /detail/ #-> include("app01.u…
两个方法其实是一种,用哪个都行,看实例:   方法一: 从list_filter中的字符串,找到model对象的字段,然后得到这个外键对应的类 循环,把list_filter中对应的类所有对象 方法二:     两方法实际上是一样的,导入方式和使用方式不同: 方法一:         导入:from django.db.models.fields.related import ForeignKey,ManyToManyField         使用:field.rel.to 方法二:     …
在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错: TypeError: __init__() missing 1 required positional argument: 'on_delete' 举例说明: user=models.OneToOneField(User) owner=models.ForeignKey(UserProfile) 需要改成: user=models.OneToOneField(Us…
假设有两张表,Role和User,因为多个用户会对应一个角色,属于多对一关系,所以User中的rolename字段使用ForeignKey,第一个参数为要关联的表Role,第二个参数related_name是用来反查这个角色下有几个用户时用的. class Role(models.Model): ''' 角色表 ''' role_name = models.CharField(max_length=50) create_time = models.DateTimeField(auto_now_a…
今天在做mxonline项目时,注册了用户表进admin后,想在后台添加一个用户试试,结果出现了错误,经过一番搜索发现以下两个解决方法,不过我只用了一种 报错信息: IntegrityError: (1452, u'Cannot add or update a child row: a foreign key constraint fails (`mxonline`.`django_admin_log`, CONSTRAINT `django_admin_log_user_id_c564eba6…
class MenuList(admin.ModelAdmin): list_display = ('menuId', 'menuName', 'menuDesc', 'menuType', 'sort_order') def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == 'status': #外键字段 kwargs["queryset"] = DictItem.obje…
这里以行政区数据为例: 一级行政区数据范例: 二级行政区范例: 三级行政区范例: 在Model层建立三个Model class ProvinceModel extends Model{ public static $data; public static $name; public function __construct(){ parent::__construct(); $this::$name='province_list';//name of obj $this::$table='chi…
现在我们整理一下多对多的问题,举个例子现在一个男的可能和多个女的谈过恋爱,一个女的也可能和多个男的谈过恋爱,把他们恋爱的关系整理为数据关联表就成为了多对多的关系. 准备三张表,男人信息表,女人信息表,男女对应恋爱表,很明显我会将男女的姓名的id加入对应表中 (1)创建男人表,我就放四组数据 (2)创建女人表,也同样放四组数据 (3)创建关系表就放9组吧 都可以拍电视剧了 (4)创建外键关联: (5)进行关联查询: (6)进行精准查询: 一个简单多对多的关系实现了…
Django测试环境搭建 ps: 1.pycharm连接数据库都需要提前下载对应的驱动 2.自带的sqlite3对日期格式数据不敏感 如果后续业务需要使用日期辅助筛选数据那么不推荐使用sqlite3 方式1: 任意创建一个py文件,在该文件内书写固定的配置 import os if __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djangoProject2.settings') import dj…
摘要: 外键 一对多 外键 多对多 外键 一对一 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 一.引言: 我们在同一数据库创建的表时候,很多时候会出现相同数据的冗余问题,也就是说几个id…
day42 外键的限制和解决方法 可以添加外键关联的那个字段可以是 被唯一(unique)约束的字段 或者 主键 限制:+ 由于外键的使用,致使多个表之间产生了联系,当我们对这些表进行更新或删除操作的时候一直报错,无法达到我们的目的. 解决方法: 删除关联字段再进行自己想完成的操作,接着添加外键关系. 场景 book表和publish表为多对一关系,book表的pid字段外键关联到了publish表的id字段 查看外键关系名称 外键关系名称:在我们创建外键的时候,mysql帮我们自动生产一个外键…
原文:https://blog.csdn.net/gghhm/article/details/99652143 当我们在写django的orm模块时,有时候会在用外键关联时,保存的是对应表中的id字段.这时候当我们要返回这对应表的名称时就很烦了. 我的两个数据是类似这么保存的 两张表是这么写的: 用ListAPIView举例,这个视图是专门用来返回列表页的, 如果我是这么写的话,那么返回出来的都只是我的id内容,即: 可是我们实际要取到的是他们俩对应的那个名称,所以,我们可以在写serializ…
问题分析 在之前的一个商城的项目中使用了mysql, 提到mysql就是外键, 多对多等等一系列的表关系 因为是一个商城的项目, 这里面有优惠券, 商品有很多的分类, 不同的商品又有不同的优惠券 其实要说的也就是商品和优惠券的关系, 说到关系那肯定就是用外键, 优惠券外键商品, 但是有一个问题, 一个外键只能指向一张表 现在假如有10个商品表, 一张优惠券表, 要想在一张表中给另外10张表创建外键关系, 那就需要10个外键关系, 10个外键字段 可想而知, 这种方法是不可行的 其实有一种办法那就…
day03 mysql navicat   一.完整性约束之     外键 foreign key     一个表(关联表: 是从表)设置了外键字段的值, 对应的是另一个表的一条记录(被关联表: 是主表)       如何建立两张关系表?     先要创建主表: 因为别人要关联你, 你要先存在         > create table mas(id int primary key auto_increment, name varchar(20) not null, des varchar(3…
梳理mysql外键约束的知识点. 1.mysql外键约束只对InnoDb引擎有效: 2.创建外键约束如下: DROP TABLE IF EXISTS t_demo_product; CREATE TABLE IF NOT EXISTS t_demo_product( proid ), proname ), price ), PRIMARY KEY(proid) )ENGINE=InnoDB DEFAULT CHARSET=gbk; DROP TABLE IF EXISTS t_demo_oper…
给一个表的字段更新,发现 这个字段是外键,刚开始用了笨 的方法,取消外键,修改后,在添加, 网上百度了. 这样设置 先 关闭外键约束 SET FOREIGN_KEY_CHECKS=0; 执行完了 打开外键约束 SET FOREIGN_KEY_CHECKS=1;…
多表设计与多表查询 1.外键约束        表是用来保存现实生活中的数据的,而现实生活中数据和数据之间往往具有一定的关系,我们在使用表来存储数据时,可以明确的声明表和表之前的依赖关系,命令数据库来帮我们维护这种关系,像这种约束就叫做外键约束.          定义外键约束  foreign key(本表的列名 ordersid) references orders(id)(引用的表明及列名)     create table dept(         id int primary key…
分表为什么分表 多表关联多表关系 ****** 表之间的关系 为什么要分表 多对一 一个外键 多对多 一个中间表 两个外键 一对一 一个外键加一个唯一约束外键约束 ****** foreign key(自己的字段) references 表名(对方的主键) 级联操作*** on update cascade on delete cascade 2. 1.修改表 2.复制表 3.蠕虫复制 sql注入攻击 ----------------------------------------分表为什么分表…
为mysql数据表建立主外键需要注意以下几点: 需要建立主外键关系的两个表的存储引擎必须是InnoDB. 外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型. 外键列和参照列必须创建索引,如果外键列不存在索引,mysql将自动创建索引. 一.SQL语句创建数据表并设置主外键关系 create table demo.ChineseCharInfo ( ID int not null auto_increment, Hanzi ) not null, primary key (ID) )…
清空.删除具有外键约束的表时报ERROR 1701(42000)的解决 解决方法: 解除外键约束mysql> set foreign_key_checks=0; 删除表后添加外键约束 mysql> set foreign_key_checks=1; 查询外键 select * from information_schema.KEY_COLUMN_USAGE where CONSTRAINT_NAME='表名' 查询结果其中几个字段TABLE_SCHEMA 数据库名称TABLE_NAME 从数据…
一对一的时候:分为主表和附表  外键建立在附件上  附表的外键关联到主表的主键上,Example:学生表和学生信息表,在学生信息表上建立外键 一对多的时候:分为一和多  外键建立在多上  Example:一个班级表对应多个学生,在学生表上建立外键 多对多的时候:分为多.关联和多   外键建立在关联上         Example:学生和课程,一个学生可以对应多个课程,一个课程也可以对应多个学生.这时会建立一个选课表(即关联表)  选课表和学生是多对一   选课表和课程也是多对一    和一对多…
Django2.0里model外键和一对一的on_delete参数 在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错: TypeError: __init__() missing 1 required positional argument: 'on_delete' 举例说明: user=models.OneToOneField(User) owner=models.ForeignKey(UserProfile)…
InnoDB:支持事务处理等不加锁读取支持外键支持行锁不支持FULLTEXT类型的索引不保存表的具体行数,扫描表来计算有多少行DELETE 表时,是一行一行的删除InnoDB 把数据和索引存放在表空间里面跨平台可直接拷贝使用InnoDB中必须包含AUTO_INCREMENT类型字段的索引表格很难被压缩 MyISAM:不支持事务,回滚将造成不完全回滚,不具有原子性不支持外键不支持外键支持全文搜索保存表的具体行数,不带where时,直接返回保存的行数DELETE 表时,先drop表,然后重建表MyI…
问题描述 我的 Django 项目中有两个 app. 在 PersonalCenter app下的 models.py 下定义了一个 Footprint 类: 在 LoginAndRegister app 下的 models.py下的 User 类中,我想建立与 Footpint 的多对多关联: 如图所示,在文件头已经 import 了 Footprint 类,但是运行 makemigrations 命令后却出现错误,显示 Footprint 类找不到: ERRORS: LoginAndRegi…
models.py class UserInfo(models.Model): username = models.CharField(max_length=64,db_column='username') passwd = models.CharField(max_length=64,db_column='password') register_date = models.DateTimeField(max_length=32,db_column='register_date') last_l…
必知必会13条 <1> all(): 查询所有结果 <2> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误. <3> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象 <5> values(*field): 返回一个ValueQuerySet——一个特殊的Q…