title: How can one get the set of all classes with reverse relationships for a model in Django?
body: <p>Given:</p>
  
  <pre><code>from django.db import models
  
  class Food(models.Model):
       """Food, by name."""
       name = models.CharField(max_length=25)
  
  class Cat(models.Model):
       """A cat eats one type of food"""
       food = models.ForeignKey(Food)
  
  class Cow(models.Model):
       """A cow eats one type of food"""
       food = models.ForeignKey(Food)
  
  class Human(models.Model):
       """A human may eat lots of types of food"""
       food = models.ManyToManyField(Food)
  </code></pre>
  
  <p>How can one, given only the class Food, get a set of all classes that it has "reverse relationships" to. I.e. given the class <strong>Food</strong>, how can one get the classes <strong>Cat</strong>, <strong>Cow</strong> and <strong>Human</strong>.</p>
  
  <p>I would think it's possible because Food has the three "reverse relations": <em>Food.cat_set</em>, <em>Food.cow_set</em>, and <em>Food.human_set</em>.</p>
  
  <p>Help's appreciated &amp; thank you!</p>