Django симметричное поле ManyToMany на 2 столбца
В моей модели, как явно указать, что я хочу, чтобы отношение 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)
Нужно ли создавать второй ManyToManyField в классе Organization, чтобы сделать что-то вроде
org1.person_set.all()
чтобы получить всех лиц, нанятых организацией и
pers1.organization_set.all()
получить все организации, в которых человек может работать? Или один ManyToManyField будет симметрично создавать отношения?
1 ответ
Решение
Вам не нужно ничего делать.
Поскольку ManyToMany
размещен с Person
, это будет:
pers1.employer.all()
а также
org1.person_set.all()