django 模型关系

一对一

OneToOneField(关联模型)

模型定义
class   A():
        id

class   B():
      aa = OneToOneField(A,related_name = cc)

已知:A对象a,查询B对象:
related_name没有定义时: a.b
related_name已定义时: a.cc

已知:B对象b,查询A对象
 b.aa

注意:OneToOneField定义的字段可以写在关联模型的任何一方

一对多

Foreignkey(关系模型)

模型定义:
class   A():
        id

class   B():
      aa = ForeignKey(A,related_name = cc)

已知:A对象a,查询B对象:
related_name没有定义时: a.b_set
related_name已定义时: a.cc

已知:B对象b,查询A对象
 b.aa

注意:ForeignKey定义的字段表示多的一方,因此只能放在多的模型中

多对多

ManyToManyField(关联模型)

模型定义
class   A():
        id

class   B():
      cc = ManyToManyField(A,related_name = dd)

已知:A对象a,查询B对象:
related_name没有定义时: a.b_set
related_name已定义时: a.dd

已知:B对象b,查询A对象
 b.cc


中间表的添加:add()、删除:remove()

注意:ManyToManyField定义的字段在任何一个关联模型中都可以

image.png
image.png

你可能感兴趣的:(django 模型关系)