Python学习---django多对多自定义第三方表180206
案例一:
# version: python3.2.5
# author: ‘FTL1012‘
# time: 2018/2/6 16:25
from django.db import models
class Book(models.Model):
name = models.CharField(max_length=33) class Author(models.Model):
name = models.CharField(max_length=33) # 自己创建第三张关联表,查询操作数据更加灵活
# 此时Django内部的多对多已经失效[包括Django多对多的remove,add方法均失效]
class A_to_B(models.Model):
bid = models.ForeignKey(Book, on_delete=True)
aid = models.ForeignKey(Author, on_delete=True) # 创建联合唯一索引
class Meta:
unique_together = (
('bid', 'aid'), # 多个联合索引,可以元组套元组
)
案例二:
# version: python3.2.5
# author: ‘FTL1012‘
# time: 2018/2/6 16:25
from django.db import models
class Book(models.Model):
name = models.CharField(max_length=33) class Author(models.Model):
name = models.CharField(max_length=33) # 自己创建第三张关联表,查询操作数据更加灵活
# 此时Django内部的多对多已经失效[包括Django多对多的remove,add方法均失效]
class A_to_B(models.Model):
bid = models.ForeignKey(Book, on_delete=True)
aid = models.ForeignKey(Author, on_delete=True) # 创建联合唯一索引
class Meta:
unique_together = (
('bid', 'aid'), # 多个联合索引,可以元组套元组
)
此时,所有的操作都是基于一对多和单表的操作了
Python学习---django多对多自定义第三方表180206的更多相关文章
- Python学习---django多对多之Djanog默认表学习
案例一: from django.db import models class Book(models.Model): name = models.CharField(max_length=33) # ...
- Python学习---django之ORM的增删改查180125
模型常用的字段类型参数 <1> CharField #字符串字段, 用于较短的字符串. #CharField 要求必须有一个参数 maxlength, 用于从数 ...
- Python学习---django模板语法180122
django模板语法[Template] 模版的组成: HTML代码+逻辑控制代码 <h1> {{ user_name }} </h1> 逻辑控制代码的组成: 1.变量: ...
- Python学习---Django下的Sql性能的测试
安装django-debug-tools Python学习---django-debug-tools安装 性能测试: settings.py INSTALLED_APPS = [ ... 'app01 ...
- python学习-- Django根据现有数据库,自动生成models模型文件
Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...
- $Django 多对多-自定义第三张表 基于双下划线的跨表查询(补充)
自定义第三张表的好处:可以定义多个字段, 缺点:查询不方便(有方法解决) 1.第三张表设置外键,联合唯一(查询不方便) class Books(models.Model): name=models.C ...
- django 多对多自定义第三张表时的注意事项
杂交(自定义第三张表+ManyToManyField) # modles.py class Boy(models.Model): name = models.CharField(max_length= ...
- Python学习---Django误删除sql表后,如何创建数据
误删除sql表后,怎么创建数据? 仅仅适合单表,多表因为涉及约束, python mangage.py makemigrations --> 生成migrations目录和根数据库对应的sql ...
- Python学习---django之ORM语法[对象关系映射]180124
ORM语法[对象关系映射] ORM: 用面向对象的方式去操作数据库的创建表以及增删改查等操作. 优点:1 ORM使得我们的通用数据库交互变得简单易行,而且完全不用考虑该死的SQL语句.快速开发. 2 ...
随机推荐
- 发布aar到jcenter
准备工作 创建bintray账号; 在https://bintray.com/, 选择如下图中,方框内"Sign Up Here": 选择合适的方式,创建账号: 新建仓库: Add ...
- 微服务Kong(二)——快速入门
在本节中,您将学习如何管理您的KONG实例.首先,我们将指导您如何启动Kong,以便您能访问KONG的RESTful形式的管理界面,您可以通过它来管理您的API,consumers等.通过管理型API ...
- ubuntu 16.04安装好后没声音的解决方法
刚安装好Ubuntu16.04 后没声音,找了好多方法都不行,看到网上说通过安装pavucontrol和alsamixer调节解决,最后无意发现一个方法,总算是可以用了,在此记录一下.可能有的可以解决 ...
- 群晖MyDS账号注册--实现使用QuickConnect外网访问
最近公司拿了个NAS给我,让我把它配置好,之前没有接触过这个东西,上网一查,发现就是和去年很火的玩客云和斐讯天天链N1的功能一样,可以实现文件储存和文件共享. 设备型号:群晖DS214SE 系统版本: ...
- [转载]VS2010怎样打开VS2013或者VS2015建立的工程
VS2010怎样打开VS2013或者VS2015建立的工程 作用:解决vs低版本无法直接打开高版本的工程文件问题. 一.转载出处 http://blog.csdn.net/qq2399431200/a ...
- APU (美国AMD公司研发的加速处理器)
APU(Accelerated Processing Unit)中文名字叫加速处理器,是AMD“融聚未来”理念的产品,它第一次将中央处理器和独显核心做在一个晶片上,它同时具有高性能处理器和最新独立显卡 ...
- SSH安全登陆原理:密码登陆与公钥登陆
SSH全称(Secure SHell)是一种以安全性闻名的应用层网络通信协议,用于计算机间的安全通信,是目前比较成熟的远程登陆解决方案. 它提供两种方法登陆: 1.密码登陆 2.公钥登陆 密码 ...
- Mysql的with rollup分组统计功能(5.1以上版本)
RollUp是上卷功能,类似于数据挖掘中的上卷操作. ROLLUp的功能和Order by功能是互斥的. mysql> SELECT year, SUM(profit) FROM sales G ...
- RabbitMQ---8、连接断开处理-断线重连
本文转载于:https://www.itsvse.com/thread-4636-1-1.html: 参考文献:http://www.likecs.com/show-29874.html:https: ...
- golang广度优先算法-走迷宫
广度优先遍历,走迷宫思路: 1.创建二维数组,0表示是路,1表示是墙:创建队列Q,存储可遍历的点,Q的第一个元素为起始点 2.从队列中取一个点,开始,按上.左.下.右的顺序遍历周围的点next,nex ...