title: Following a relationship backwards, and annotating the results
body: <p>Say I've got a couple of models, one related to the other via foreign key like so:</p>
  
  <pre><code>class Tourist(models.Model):
      age = models.IntegerField()
  
  class Country(models.Model):
      tourist = models.ForeignKey(Tourist)
  </code></pre>
  
  <p>I know that I can work backwards from Tourist to find out how many countries he's been in using:</p>
  
  <pre><code>t = Tourist.objects.all()[0]
  t.country_set.count()
  </code></pre>
  
  <p>But is there any way to annotate the count of countries that a tourist has visited? It would be cool if I could do something like</p>
  
  <pre><code>Tourist.objects.annotate(countries_visited=country_set.count())
  </code></pre>
  
  <p>I know that the last bit of "code" there makes no sense, but I'm counting on it to convey the desires of my heart. I know I could just do something like this:</p>
  
  <pre><code>[(t.pk, t.country_set.count()) for t in Tourist.objects.all()]
  </code></pre>
  
  <p>But I'm just wondering if there is a better way to do it. Thanks!</p>