我想在django中建立一对多的关系。
在我的模型中,我有一个类Person和一个类Group,我想要建立的关系是一个Group里面可以有N个人,一个组不能没有至少一个人在里面
在MER图中,它就像(想象这些是实体和关系)
|组| 1&==== LT;> ----- N |人|
答案 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
。