3

我正在尝试在 django 中建立一对多的关系。

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

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

|组|1====<>-----N|个人|

4

1 回答 1

17

正如 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.

于 2012-12-21T23:19:43.337 回答