title: Django - reverse lookups with ManyToManyField
body: <p>I'm trying to follow the code from the django docs:</p>
  
  <pre><code>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)
  
  
  &gt;&gt;&gt; ringo = Person.objects.create(name="Ringo Starr")
  &gt;&gt;&gt; paul = Person.objects.create(name="Paul McCartney")
  &gt;&gt;&gt; beatles = Group.objects.create(name="The Beatles")
  &gt;&gt;&gt; m1 = Membership(person=ringo, group=beatles,
  ...     date_joined=date(1962, 8, 16),
  ...     invite_reason= "Needed a new drummer.")
  &gt;&gt;&gt; m1.save()
  &gt;&gt;&gt; beatles.members.all()
  [&lt;Person: Ringo Starr&gt;]
  &gt;&gt;&gt; ringo.group_set.all()
  </code></pre>
  
  <p>My model looks like this:</p>
  
  <pre><code>class Trip(models.Model):
      members = models.ManyToManyField(User,blank=True,null=True,through='TripReservation')
  </code></pre>
  
  <p>But when I call user.group_set.all() for a given user instance, I get an error that there is no attribute group_set</p>