zoukankan      html  css  js  c++  java
  • 外键介绍,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表科技班所有学生
  • 相关阅读:
    Eclipse对printf()不能输出到控制台的解决方法
    Eclipse launch failed.Binary not found解决方案
    Windows 7中使用Eclipse 使用CDT and WinGW 开发C/C++(转载)
    assets
    方法对头,报表模板维护其实很简单
    刷机包各个文件都是啥
    开机logo切换逻辑深入研究
    不同分辨率的LCM进行兼容
    SD卡驱动分析(二)
    SD卡驱动分析(一)
  • 原文地址:https://www.cnblogs.com/wfl9310/p/9444243.html
Copyright © 2011-2022 走看看