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 ...
随机推荐
- cors允许的方法和contype-type
https://fetch.spec.whatwg.org/#cors-safelisted-request-header get head post text/plain multipart/for ...
- JDK源码--ArrayList浅析
先上别人的源码分析http://www.cnblogs.com/roucheng/p/jdkfenxi.html 这个链接也不错:http://www.jianshu.com/p/8d14b55fa1 ...
- JAVA泛型——逆变
在上篇<JAVA泛型——协变>这篇文章中遗留以下问题——协变不能解决将子类型添加到父类型的泛型列表中.本篇将用逆变来解决这个问题. 实验准备 我们首先增加以下方法,见代码清单1所示. 代码 ...
- i.mx6 Android5.1.1 系统属性
属性变更的请求时init事件循环处理的另一个事件,在Android平台中,为了让运行中的所有进程共享系统运行时所需要的各种设置值,系统开辟了属性存储区域,并提供了访问该区域的API.属性由键(key) ...
- c# Dictionary 中Keys.ToArray<>方法的细节测试
/// <summary> /// dic.Keys.ToArray<>方法生成数组的顺序和dic中的顺序相同 /// </summary> public stat ...
- [转]Repeat Page Header on each Page for reports SSRS
本文转自:https://stackoverflow.com/questions/3475144/i-want-to-repeat-page-header-on-each-page-for-repor ...
- Skype坑爹报错:“旧版本无法删除,请联络您的技术支持小组 ”的解决办法
真是恶心的让人想吐的报错.现在终于解决了,跟大家分享一下方法. 先给问题截个图,如下 首先当我去搜解决办法之前,我已经在[控制面板]的[卸载程序]里把Skype删除了,真是让我后悔不已的操作啊!!因为 ...
- 高并发系列之——MQ消息中间件Kafka
1.前言 1.1 包路径和源码 下载链接 基于发布订阅的分布式消息系统,使用scala语言编写. 特点:采用分区机制,每个分区可以放到不同的服务器上,提高了吞吐率,同时基于磁盘存储,以及副本机制可以确 ...
- TCP/IP Socket通信demo
一个实例通过client端和server端通讯 客户端发送:“我是客户端,请多关照” 服务端回复:“收到来自于"+s.getInetAddress().getHostName()+" ...
- 一文看懂大数据的技术生态圈,Hadoop,hive,spark都有了
一文看懂大数据的技术生态圈,Hadoop,hive,spark都有了 转载: 大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的.你可以把它 ...