设计数据库表
老师表 和 班级表 多个老师 对应 多个班级
from django.db import models# Create your models here.#学生模型class Students(models.Model):sname=models.CharField(max_length=20)age=models.IntegerField()gender=models.BooleanField()cls=models.ForeignKey('Classes',on_delete=models.CASCADE)#通过cls创建学生模型与班级模型的外键关系def __str__(self):#自定义返回样式return '%s,%s,%s,%s'%(self.sname,self.age,self.gender,self.cls)class Meta:#自定义映射到数据库的表名db_table='students'#班级模型class Classes(models.Model):cname=models.CharField(max_length=50)headmaster=models.CharField(max_length=20)def __str__(self):return '%s,%s'%(self.cname,self.headmaster)class Meta:db_table='classes'# 老师模型class Teachers(models.Model):tname=models.CharField(max_length=20)age=models.IntegerField()gender=models.BooleanField()cls=models.ManyToManyField('Classes')def __str__(self):return '%s,%s,%s,%s'%(self.tname,self.age,self.gender,self.cls)class Meta:db_table='teachers'
新增
# 新增基础数据 老师表数据,班级表数据models.Teachers.objects.create(tname='xxx',age=19,gender=0,)# 获取班级的对象qh_objs = models.Classes.objects.filter(headmaster='清华大学班').first()# 获取老师的对象guo = models.Teachers.objects.get(tname='郭老师')cui = models.Teachers.objects.get(tname='崔老师')# 基于对象进行新增qh_objs.teachers_set.add(*[guo,cui])# 如果已知id 基于id新增qh_objs.teachers_set.add(*[3,4])
查询
# 查询老师对应的班级objs = models.Teachers.objects.filter(tname='郭老师').first().cls.all().values()objs = models.Classes.objects.filter(headmaster='清华大学班').first().teachers_set.all().values()print(objs)
删除
# 获取xxx的id# obj = models.Teachers.objects.filter(tname='xxx').values().first().get('id')# 删除清华大学 和xxx的绑定关系# models.Classes.objects.filter(headmaster='清华大学班').first().teachers_set.remove(obj)# print(obj)# 获取清华大学班的id# obj = models.Classes.objects.filter(headmaster='清华大学班').values()[0].get('id')# 删除tname=xxx与清华大学班的绑定关系# models.Teachers.objects.filter(tname='xxx').first().cls.remove(obj)
