zoukankan      html  css  js  c++  java
  • 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")
  • 相关阅读:
    Java线程的5个使用技巧
    每个Java程序员需要了解的8个Java开发工具
    爱上Java和JVM的10大理由
    Git入门
    建网站的流程
    idea快捷键
    idea中ctrl+alt+方向键问题
    oracle数据库-备份
    rabbitmq路由模式、订阅、主题
    rabbitmq 工作模式、简单模式
  • 原文地址:https://www.cnblogs.com/jassin-du/p/8340934.html
Copyright © 2011-2022 走看看