在django中建立一对多的关系

时间:2012-12-21 21:40:28

标签: django database-design one-to-many

我想在django中建立一对多的关系。

在我的模型中,我有一个类Person和一个类Group,我想要建立的关系是一个Group里面可以有N个人,一个组不能没有至少一个人在里面

在MER图中,它就像(想象这些是实体和关系)

|组| 1&==== LT;> ----- N |人|

1 个答案:

答案 0 :(得分:17)

正如亚瑟所述,这在Django文档中得到了很好的记录。

实际上很容易:

from django.db import models

class Person(models.Model):
    # Some other fields
    group = models.ForeignKey(Group, related_name='people')

class Group(models.Model):
    # Some fields

如您所见,您只需在person类中创建一个外键 - >这与你在数据库中手动设置的方式完全相同,如果你应该这样做的话。

Django将自动添加反向关系,以便您可以从组中找到人员:

some_group.people

请注意,related_name指定反向关系的名称。这是可选的,但我想您要使用people代替persons