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 ...
随机推荐
- jsf和facelets的生命周期
一.JSF生命周期 JSF是基于事件驱动.JSF生命周期分为两个主要阶段:执行阶段和渲染阶段. 1.执行阶段 分为六个阶段: 恢复视图阶段 当客户端请求一个JavaServer Faces页面时,Ja ...
- 2-6 js基础-ajax
1.var oAjax=new XmlHttpRequest()//创建一个ajax对象,兼容非ie6 var oAjax=new ActiveXObject('Microsoft.XMLHTTP') ...
- 使用Rectangle+ImageBrush来代替Image,解决图片模糊的问题
<Rectangle Margin="0" Stroke="Black" HorizontalAlignment="Right" Wi ...
- 吴恩达《深度学习》第五门课(1)循环序列模型(RNN)
1.1为什么选择序列模型 (1)序列模型广泛应用于语音识别,音乐生成,情感分析,DNA序列分析,机器翻译,视频行为识别,命名实体识别等众多领域. (2)上面那些问题可以看成使用(x,y)作为训练集的监 ...
- 一、hadoop单节点安装测试
一.hadoop简介 相信你或多或少都听过hadoop这个名字,hadoop是一个开源的.分布式软件平台.它主要解决了分布式存储(hdfs)和分布式计算(mapReduce)两个大数据的痛点问题,在h ...
- JAVA jar 和 war 包的区别
一. jar 包 JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件.JavaSE程序可以打包成Jar包(J其实可以理解为Java了). ...
- FisherYates费雪耶兹随机置乱算法
public class FisherYates { public static void main(String[] args) { int[] arr = new int[10]; // 初始有序 ...
- bnu 4060 奇偶性,异或运算
Plants vs. Zombies Time Limit: 5000ms Memory Limit: 2048KB 64-bit integer IO format: %lld Jav ...
- yum只下载不安装dokcer
yum install --downloadonly --downloaddir=/test/ docker-io 有三个依赖包,如果不知道现后依赖顺序,可以强制安装 哦了
- maven 程序包com.sun.image.codec.jpeg
在 Pom.xml 增加 <build> <plugins> <plugin> <artifactId>maven-compiler-plugin< ...