7.一对一、多对多表关系实例

#以下是示例一对一,多对多的表关系

class Department(models.Model):
    #学院表,字段有id和name
    d_id = models.AutoField(primary_key=True)
    d_name = models.CharField(max_length=12)


    def __str__(self):

        return 'd_id=%s ,\n d_name=%s'%(self.d_id,self.d_name)

class Students(models.Model):
    #学生表,字段有id和name 还有关联的外键表学院表
    s_id = models.AutoField(primary_key=True)
    s_name = models.CharField(max_length=10)
    department = models.ForeignKey('Department',on_delete=models.CASCADE)# on_delete 代表级联删除 Django2.0版本必须写
    #外键关联 一对多

class Stu_detail(models.Model):
    #一对一表,与学生表形成一对一关系 与学生id形成一对一关系
    s_id = models.OneToOneField('Students',on_delete=models.CASCADE)
    age = models.IntegerField()
    gender = models.BooleanField(default=1)
    city = models.CharField(max_length=12)




class Course(models.Model):
    #多对多,此为课程表与学生表形成多对多关系
    c_id = models.AutoField(primary_key=True)
    c_name = models.CharField(max_length=14)
    student = models.ManyToManyField('Students')

```注:建立完成模型,要进行数据库的映射操作 
        python manage.py makemigrations 
        python manage.py migrate
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。