2010-12-20 4 views
1

J'ai une question simple. en utilisant l'exemple de django ci-dessus. Comment puis-je obtenir par exemple l'invite_reason de Person in a Group? ou toutes les dates jointes à tous les groupes de cette personne? Merci.Accéder aux valeurs du modèle intermédiaire Django

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) 

Répondre

2

Vous devez interroger votre modèle Membership pour cela, comme ceci:

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

Alternativement, vous pouvez l'interroger sur la base de la relation:

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

Merci pour l'aide ! –

Questions connexes