Зачем использовать аргумент «сквозной» для ManyToManyField в моделях Django?

Просматривая документы Django и пытаясь выяснить, как использовать аргумент «сквозной». Вот ссылка на doc .

Пример:

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

    def __unicode__(self):
        return self.name

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

    def __unicode__(self):
        return self.name

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

Зачем вообще нужен атрибут «members» группы? Разве внешний ключ членства «group» не достаточен для отслеживания отношения и доступа к этой информации?

6
задан Marcin 11 January 2012 в 17:11
поделиться