2012-10-15 14 views
12

Ich versuche, Viele-zu-viele-Beziehung von einigen durch Klasse Feld zu filtern.Filtern von Viele-zu-Viele-Beziehung nach Beziehungsfeld in Django

die Dokumentation Django Zitiert, werde ich mein Ziel

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) 

In diesem Beispiel mein Ziel sould sein Filter Beziehung erklären und erhalten viele nur die Person die Ausgangs beigetreten einige Gruppe von bestimmten Datum (date_joined Feld).

Ist es möglich?

Antwort

23

Sie können query across relationships mit dem django ORM (oder in diesem Fall der umgekehrte Beziehung):

person = Person.objects.filter(membership__group=example_group, membership__date_joined__gte=example_date) 
+3

Timmy ich in dir bin. Dies ist die Antwort in stackoverflow, die mich glücklicher gemacht hat. Je. – reformy

Verwandte Themen