ORM版,学生管理系统03
关于老师信息管理
建立多对多关系
第一种(通过外键建立)
自己写类,自己使其建立关系
缺点:
不能用Django ORM 多对多操作的语法 class Teacher(models.Model):
tname = models.CharField(max_length=32) class TeacherToClass(models.Model):
# tid = models.ForeignKey(to="Teacher")
tid = models.ForeignKey("Teacher" ) # 简写版
cid = models.ForeignKey("Class") class Meta:
unique_together = ("tid","cid")
''' # 第二种(通过ManyToManyField)
# 写一个类,利用ORM建立关系
#
# 缺点:自动创建的第三张表,我没有类和它对应,也就是不能通过ORM单独操作第三张表 class Teacher(models.Model):
tname = models.CharField(max_length=32)
cid = models.ManyToManyField("Class") 第三种 (通过外键和ManyToManyField创建
不能调用add set
class Teacher(models.Model):
tname = models.CharField(max_length=32)
cid = models.ManyToManyField(to="Class",through="TeacherToClass",through_fields=("tid","cid")) class TeacherToClass(models.Model):
tid = models.ForeignKey(to="Teacher")
cid = models.ForeignKey(to="Class") class Meta:
unique_together = ("tid","cid")
ORM版,学生管理系统03的更多相关文章
- ORM版学员管理系统
ORM版学员管理系统 班级表 表结构 class Class(models.Model): id = models.AutoField(primary_key=True) # 主键 cname = m ...
- ORM版学员管理系统1
ORM版学员管理系统 班级表 表结构 class Class(models.Model): id = models.AutoField(primary_key=True) # 主键 cname = m ...
- python简易版学生管理系统
#coding=utf- def showInfo(): print("**************") print(" 学生管理系统") print(&quo ...
- ORM版学员管理系统 2
学生信息管理 展示学生信息 URL部分 url(r'^student_list/', app01_views.student_list, name="student_list"), ...
- ORM版学员管理系统2
学生信息管理 展示学生信息 URL部分 url(r'^student_list/', app01_views.student_list, name="student_list"), ...
- ORM版学员管理系统 3
老师信息管理 思考 三种方式创建多对多外键方式及其优缺点. 通过外键创建 class Class(models.Model): id = models.AutoField(primary_key=Tr ...
- ORM版学员管理系统3
老师信息管理 思考 三种方式创建多对多外键方式及其优缺点. 通过外键创建 class Class(models.Model): id = models.AutoField(primary_key=Tr ...
- Django之ORM版学员管理系统
班级表 表结构 class Class(models.Model): id = models.AutoField(primary_key=True) # 主键 cname = models.CharF ...
- Java 简化版学生管理系统(IO版)
Student management system 学生管理系统IO版 详细知识点可参考一下几篇文章 常用API Java 之ArrayList集合及应用 Java 之IO流及应用 Compreh ...
随机推荐
- python+selenium+API
一.浏览器操作 1.浏览器最大化 driver.maximize_window() #将浏览器最大化显示 2.设置浏览器宽.高 driver.set_window_size(480, 800)#设置浏 ...
- DB 数据同步到数据仓库的架构与实践
背景 在数据仓库建模中,未经任何加工处理的原始业务层数据,我们称之为ODS(Operational Data Store)数据.在互联网企业中,常见的ODS数据有业务日志数据(Log)和业务DB数据( ...
- JavaScript创建类的三种方式
//第一种 创建类方法. // 用方法模拟 构造函数. function classobj() { this.name = 'xiaoming'; } classobj.text = 'text'; ...
- 关于git bash的问题,pull不下来(登录之后,git帮你记住了,想切换其他用户)
参考博客: https://www.jianshu.com/p/8a7f257e07b8 从某个项目地址pull代码下来,老是报错 fatal: Authentication failed for ' ...
- Zabbix 自定义Key
系统:Linux Centos 7.4 x64.Windos 2008 x64 服务:Zabbix 3.0.16 说明1:自定义Key 主要通过自定义 脚本 或者 命令 来实现自定义监控类型,需要在a ...
- 学习笔记1126 - Fib的计算方法,降低了时间复杂度
#include <stdio.h> #include <stdlib.h> #define NUM 10 //如果NUM很大的话,应该申请的动态内存要用long类型吧? in ...
- java:java静态代理与动态代理简单分析
java静态代理与动态代理简单分析 转载自:http://www.cnblogs.com/V1haoge/p/5860749.html 1.动态代理(Dynamic Proxy) 代理分为静态代理和动 ...
- mongodb 的Cursor 作为 stream 的时候,读出来的数据数字开头的key没法访问(又踩了一个坑)
mongdb 用Cursor 读取数据的时候,直接用流读出来的数据key是数字开头的话,就是独具不到,用Object.keys() 把所有的key 打印出来的话如下:怎么会是这样的呢? 查看了一下文档 ...
- NumPy切片和索引
NumPy - 切片和索引 ndarray对象的内容可以通过索引或切片来访问和修改,就像 Python 的内置容器对象一样. 如前所述,ndarray对象中的元素遵循基于零的索引. 有三种可用的索引方 ...
- Linux常用命令.rpm
1.安装: rpm -ivh 包全名(查询依赖网址:http://www.rpmfind.net) -i(install):安装 -v(verbose):显示详细信息 -h(hash):显示进度 -- ...