django: Не удается найти строку таблицы данных поля Extra для отношений «многие ко многим»? - PullRequest
0 голосов
/ 22 октября 2019

Здравствуйте, я пытаюсь понять модели данных Django и их возможности. После использования «один к одному» и «m2m» я пытаюсь понять дополнительные поля «m2m». Поэтому я последовал примеру Django Doc и заполнил модели некоторыми данными.

models.py

class Person(models.Model):
    name = models.CharField(max_length=128)

    def __str__(self):
        return self.name

class Group(models.Model):
    name = models.CharField(max_length=128)
    members = models.ManyToManyField(Person, through='Membership')

    def __str__(self):
        return self.name

class Membership(models.Model):
    person = models.ForeignKey(Person, on_delete=models.CASCADE)
    group = models.ForeignKey(Group, on_delete=models.CASCADE)
    date_joined = models.DateField()
    invite_reason = models.CharField(max_length=64)

Пока все в порядке,но когда я посмотрел в таблицы моделей через pgAdmin 4 (я использую PostgreSQL), я не смог найти ни одного столбца members в модели Group. Так что я сделал небольшое визуальное представление о своей модели и некоторых скриншотах pgAdmin для лучшего понимания.

enter image description here

Как видите, Group имеет толькоid и name столбец.

Вопрос

мой вопрос: это отношение m2m members из Group, только какое-то "виртуальное"созданы отношения через Membership.person.fk и Membership.group.fk? То есть нет поля, которое будет заполнено? Я пытаюсь представить, что он работает как рекурсивный запрос экземпляра?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...