首页 > 其他 > 详细

多表查询实例

时间:2019-01-20 13:26:00      阅读:184      评论:0      收藏:0      [点我收藏+]

查询练习

技术分享图片

2.models.py 创建表关系

技术分享图片
from django.db import models

# Create your models here.

# 1.老师表
class Teacher(models.Model):

    tid =  models.AutoField(primary_key=True)
    tname = models.CharField(max_length=32)

    class Meta:
        db_table="teacher"
    def __str__(self):
        return self.tname

# 2.课程表
class Course(models.Model):
    cid =  models.AutoField(primary_key=True)
    cname = models.CharField(max_length=32)
    #老师和课程 一对多
    teaher =models.ForeignKey(to="Teacher",on_delete=models.CASCADE)
    class Meta:
        db_table="course"

#3. 年纪表
class Class_grade(models.Model):
    gid = models.AutoField(primary_key=True)
    gname = models.CharField(max_length=32)
    class Meta:
        db_table="grade"


#4.班级表
class Class(models.Model):
    cid = models.AutoField(primary_key=True)
    caption = models.CharField(max_length=32)
    #年级和班级是一对多关系
    calss_grade = models.ForeignKey(to="Class_grade", on_delete=models.CASCADE)
    #班级和老师多对多
    teahcer=models.ManyToManyField(to="Teacher")
    class Meta:
        db_table="class"

#5.学生表
class Student(models.Model):
    sid = models.AutoField(primary_key=True)
    sname = models.CharField(max_length=32)
    gender = models.CharField(max_length=32)
    #学生表和班级表 多对一
    cls= models.ForeignKey(to="Class",on_delete=models.CASCADE)
    class Meta:
        db_table="student"



#6.成绩表
class Score(models.Model):
    sid = models.AutoField(primary_key=True)
    score =models.IntegerField()

    # #成绩和课程一对多
    #
    course =models.ForeignKey(to="Course", on_delete=models.CASCADE)
    # #成绩和学生一对多
    student = models.ForeignKey(to="Student", on_delete=models.CASCADE)
    class Meta:
        db_table="score"
    #
表关系

 

多表查询实例

原文:https://www.cnblogs.com/knighterrant/p/10241191.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!