title: Filtering list_filter in Django admin based on field in foreign key
body: <p>I would like to filter one of my list_filters by a field in the table that the foreign key points to.</p>
  
  <p>My models:</p>
  
  <pre><code>class Organisation(models.Model):
      name = models.CharField()
      COMPANY = 'COMPANY'
      CHARITY = 'CHARITY'
      ORG_CHOICES = (
          (COMPANY, 'COMPANY'),
          (CHARITY, 'CHARITY'),
          )
      type = models.CharField(choices = ORG_CHOICES)
  
  class Issue(models.Model):
     name = models.CharField
     charity = models.ForeignKey(Organisation)
  </code></pre>
  
  <p>I would like to put in IssueAdmin:</p>
  
  <pre><code>list_filter = (charity)
  </code></pre>
  
  <p>And for that to supply a list of charities.  Currently it just lists everything in the organisation model, both the charities and the companies.  For example I get this list in the filter at the moment:</p>
  
  <pre><code>oxfam
  yamaha
  greenpeace
  microsoft
  </code></pre>
  
  <p>When I want a filter that lists:</p>
  
  <pre><code>oxfam
  greenpeace
  </code></pre>
  
  <p>I could fix this by splitting the organisation table into two tables (charity and company) but that feels wrong.</p>
  
  <p>It seems like SimpleListFilter should work, but I've not had any luck so far.  Basically I would like something the uses the following filter and returns a list of charities for the filter:</p>
  
  <pre><code>Organisation.objects.filter(type = 'CHARITY')
  </code></pre>
  
  <p>My (poor) attempt at a filter:</p>
  
  <pre><code>class CharityFilter(SimpleListFilter):
      title = _('Charity')
      parameter = _('charity__type')
      def lookups(self, request, model_admin):
          return Organisation.objects.filter(type = 'CHARITY')
  
      def queryset(self, request, queryset):
          if not self.value() is not None:
              return queryset.filter(type = 'CHARITY')
          else:
              return queryset
  </code></pre>
  
  <p>Can any one help me?</p>