1

在我的模型中,我如何明确声明我希望与另一列的多对多关系是对称的,以便从每个对象调用 object_set 时,它可以通过同一个数据库表来查找关系?

一个例子

class Person(models.Model):
    name = models.CharField(max_length=100)
    employer = models.ManyToManyField(Organization)

class Organization(models.Model):
    name = models.CharField(max_length=100)

我是否需要在 Organization 类中创建第二个 ManyToManyField 才能执行类似的操作

org1.person_set.all()

让所有受雇于该组织的人员和

pers1.organization_set.all()

获取一个人可能为之工作的所有组织?还是单个 ManyToManyField 会对称地建立关系?

4

1 回答 1

2

你不需要做任何事情。

因为ManyToMany是 托管的Person,所以它将是:

pers1.employer.all()

org1.person_set.all()
于 2012-12-21T01:52:04.157 回答