title: Django, annotation and ordering using data from other table
body: <p>In my app there are users who request items and users who donate those items. I would like to fetch all users that made the most donations.</p>
  
  <p>These are my models:</p>
  
  <pre><code>class ItemRequest(models.Model):
      item_type = models.ForeignKey(ItemType)
      description = models.CharField(max_length=1024, default='', blank=True)
      quantity = models.IntegerField()
      user = models.ForeignKey(User)
      completed = models.BooleanField(default=False)
      completed_dt = models.DateTimeField()
  
  
  class Donation(models.Model):
      item_request = models.ForeignKey(ItemRequest, related_name='donation')
      user = models.ForeignKey(User, related_name='donor')
      quantity_offered = models.IntegerField(default=0)
      quantity_accepted = models.IntegerField(default=0)
  </code></pre>
  
  <p>More specifically, I would like to fetch the top-5 donors with the most "completed" donations (where <code>item_request.completed=True)</code>. Can I do this with one query?</p>