外键介绍,manytomany介绍,filter跨表双下划线
# Create your models here. class Classes(models.Model):#班级表 title=models.CharField(max_length=32) m=models.ManyToManyField('Teacheres')#加上引号,全执行完后才来执行,表的多对多 class Teacheres(models.Model):#教师表 name=models.CharField(max_length=32) #obj=Teacheres(name='雄安房') #obj.save() class Student(models.Model): username=models.CharField(max_length=32) age=models.IntegerField() #gender=models.BooleanField()布尔值 gender = models.NullBooleanField()#可以为空的布尔值 cs=models.ForeignKey(Classes)#这个classes不用加引号,因为在上面,顺序执行,
cs存的就是cs_id是一条另一张表的完整的记录
# 外键存放的另一张表的记录一组一组的id和title
#filter 跨表filter(cs__name=cname)双下划线
all()拿到的也是很多记录 用for 拿某一条记录
【】列表,()元祖{}字典
obj=classes.objects.filter(id=1).first()
obj.m.add[2,3]m是manytomany的,若没有,会新建一张教师表
id 班级id 教师id
1 1 2
2 1 3
.m.remove()
.m.clear()
.m.set()
1类代表数据库的表,
2类的对象代表表的一行记录
3外键代表另一张表的一行记录
4 manytomany,会默认自动生成第三张表teacher,然后通过本表对第三张表操作
5 stu_list=Student.objects.all()相当于select *from
for row in stu_list:
row.cs_id,
6 stu=Student.objects.all().values('username','id')相当于select username,id from
7拿另一张表
Student.objects.filter(cs__title='科技班').all()filter里双下划线跨表拿class表科技班所有学生