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")

 

posted @ 2018-01-24 11:50  小杜要加油  阅读(119)  评论(0编辑  收藏  举报