title: Django spanning relationships
body: <p>I've read the documentation but am still coming up with errors. I have Users placing Orders for Catalog objects. I'd like to create a query which returns all Users that have an Order containing a specific Catalog item.</p>
  
  <p>Here are my models:</p>
  
  <pre><code>class Catalog(models.Model):
    name = models.CharField(max_length=100)
    price = models.IntegerField()
  
    def __unicode__(self):
        return self.name
  
  class Annual(models.Model):
    catalog = models.OneToOneField(Catalog, blank=True, null=True, related_name='annual_products')
    year_id = models.IntegerField(max_length=4)
    start_date = models.CharField(max_length=10)
    end_date = models.CharField(max_length=10)
    date = models.DateTimeField(auto_now_add=True, blank=True)
    def __unicode__(self):
        return unicode(self.year_id)
  
  class Order(models.Model):
    user = models.ForeignKey(User, related_name='who_ordered')
    select = models.ManyToManyField(Catalog, related_name='annuals_ordered', blank=True, null=True)
  
    def __unicode__(self):
        return unicode(self.user)
  </code></pre>
  
  <p>Here is the query I've been trying:</p>
  
  <pre><code> Catalog.objects.filter(order__select__annual='2014')
  </code></pre>