title: How to limit choices to Foreign keys in Django admin
body: <p>I run into a problem when using the Django admin. I'm building a small ScrumBoard. It has projects, with statuses, stories and tasks.</p>
  
  <p>Consider the following model:</p>
  
  <pre><code>@python_2_unicode_compatible
  class Project(models.Model):
      name = models.CharField(max_length=100)
  
      class Meta:
          verbose_name = _('Project')
          verbose_name_plural = _('Projects')
  
      def __str__(self):
          return self.name
  
  @python_2_unicode_compatible
  class Status(models.Model):
      name = models.CharField(max_length=64) # e.g. Todo, In progress, Testing Done
      project = models.ForeignKey(Project)
  
      class Meta:
          verbose_name = _('Status')
          verbose_name_plural = _('Statuses')
  
      def __str__(self):
          return self.name
  
  
  @python_2_unicode_compatible
  class Story(models.Model):
      """Unit of work to be done for the sprint. Can consist out of smaller tasks"""
      project = models.ForeignKey(Project)
      name=models.CharField(max_length=200)
      description=models.TextField()
      status = models.ForeignKey(Status)
  
      class Meta:
          verbose_name = _('Story')
          verbose_name_plural = _('Stories')
  
      # represent a story with it's title
      def __str__(self):
          return self.name
  </code></pre>
  
  <p>The problem: when an admin user creates a story he will see statuses from all the projects instead of the status from one project.</p>