访问中间模型值Django

时间:2010-12-20 18:01:58

标签: django django-models

我有一个简单的问题。使用上面django的例子。我怎样才能从集团中的Person获得invite_reason?或所有人都加入了该人的所有团体?感谢。

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)

1 个答案:

答案 0 :(得分:2)

您需要查询Membership模型,如下所示:

memberships = Membership.objects.filter(person=person, group=group)
for membership in memberships:
    membership.invite_reason

或者,您可以根据以下关系查询它:

memberships = person.membership_set.filter(group=group)
for membership in memberships:
    membership.invite_reason