Django来敲门

Django多表关联

2018-01-03  本文已影响89人  不一样的丶我们

一对一关联关系

数据库体现 Django程序模型
通过外键关联,外键要设置在多的一方 OneToOneField()
   #在 models 文件里设置 class 属性 OneToOneField 
   #关联属性要设置在后边的类里,不然会报错。因为程序是按顺序执行的。
   #一般关联属性直接设置为前者类名,关系设定后直接调用对应的类名即可

   class Boy(models.Model):  
        .....  

   class Girl(models.Model):
        ......
        boy=models.OneToOneField(Boy,null=True,blank=True)
        #根据实际选择是否为空(null=True,blank=True),允许为空的话添加对象时可以先没有关联对象;
        #关联属性如果不为空,添加对象时必须把关联对象一并添加,否则无法创建对象。

    # 如:Girl类里设置有Boy属性。在选择关联属性配偶保存时,女选男用:
    girl.boy=boy    
    girl.save()   
    # 当男选女时一样用女类来保存关联属性男,使双方关联。

一对多关联关系

数据库体现 Django程序模型
通过外键关联,外键设置在多的一方 models.ForeignKey()
中间表关联,多的一方要设置唯一约束 primary key() 也是主键

多对多关联关系

数据库体现 Django程序模型
中间表关联 models.ManyToManyField()

附加

上一篇下一篇

猜你喜欢

热点阅读