我正在尝试在 django 中建立一对多的关系。
在我的模型中,我有一个类 Person 和一个类 Group ,我想要建立的关系是一个 Group 可以有 N 人,如果没有一个人在里面,一个组就不能存在
在 MER 图中,它会像(想象这些是实体和关系)
|组|1====<>-----N|个人|
我正在尝试在 django 中建立一对多的关系。
在我的模型中,我有一个类 Person 和一个类 Group ,我想要建立的关系是一个 Group 可以有 N 人,如果没有一个人在里面,一个组就不能存在
在 MER 图中,它会像(想象这些是实体和关系)
|组|1====<>-----N|个人|
正如 Arthur 所说,这在 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
.