Django对称的ManyToMany字段在2列上

时间:2012-12-21 01:44:42

标签: django django-models

在我的模型中,我如何明确地声明我希望与另一列的ManyToMany关系是对称的,这样当从每个对象调用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会对称地建立关系吗?

1 个答案:

答案 0 :(得分:2)

您无需做任何事情。

由于ManyToMany托管了Person,因此它将是:

pers1.employer.all()

org1.person_set.all()