7.一對一、多對多表關(guān)系實(shí)例

#以下是示例一對一,多對多的表關(guān)系

class Department(models.Model):
    #學(xué)院表,字段有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):
    #學(xué)生表,字段有id和name 還有關(guān)聯(lián)的外鍵表學(xué)院表
    s_id = models.AutoField(primary_key=True)
    s_name = models.CharField(max_length=10)
    department = models.ForeignKey('Department',on_delete=models.CASCADE)# on_delete 代表級聯(lián)刪除 Django2.0版本必須寫
    #外鍵關(guān)聯(lián) 一對多

class Stu_detail(models.Model):
    #一對一表,與學(xué)生表形成一對一關(guān)系 與學(xué)生id形成一對一關(guān)系
    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):
    #多對多,此為課程表與學(xué)生表形成多對多關(guān)系
    c_id = models.AutoField(primary_key=True)
    c_name = models.CharField(max_length=14)
    student = models.ManyToManyField('Students')

```注:建立完成模型,要進(jìn)行數(shù)據(jù)庫的映射操作 
        python manage.py makemigrations 
        python manage.py migrate
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容