title: Django admin list_display weirdly slow with foreign keys
body: <p>Django 1.2.5
  Python: 2.5.5</p>
  
  <p>My admin list of a sports model has just gone really slow (5 minutes for 400 records). It was returning in a second or so until we got 400 games, 50 odd teams and 2 sports.</p>
  
  <p>I have fixed it in an awful way so I'd like to see if anyone has seen this before. My app looks like this:</p>
  
  <pre><code>models:
  
  Sport( models.Model )
      name
  
  Venue( models.Model )
      name
  
  Team( models.Model )
      name
  
  Fixture( models.Model )
      date
      sport = models.ForeignKey(Sport)
      venue = models.ForeignKey(Venue)
  
  TeamFixture( Fixture )
      team1 = models.ForeignKey(Team, related_name="Team 1")
      team2 = models.ForeignKey(Team, related_name="Team 2")
  
  
  admin:
  
  TeamFixture_ModelAdmin (ModelAdmin)
      list_display = ('date','sport','venue','team1','team2',)
  </code></pre>
  
  <p>If I remove any foreign keys from list_display then it's quick. As soon as I add any foreign key then slow.</p>
  
  <p>I fixed it by using non foreign keys but calculating them in the model init so this works:</p>
  
  <pre><code>models:
  
  TeamFixture( Fixture )
      team1 = models.ForeignKey(Team, related_name="Team 1")
      team2 = models.ForeignKey(Team, related_name="Team 2")
      sport_name = ""
      venue_name = ""
      team1_name = ""
      team2_name = ""
  
      def __init__(self, *args, **kwargs):
          super(TeamFixture, self).__init__(*args, **kwargs)
  
          self.sport_name = self.sport.name
          self.venue_name = self.venue.name
          self.team1_name = self.team1.name
          self.team2_name = self.team2.name
  
  admin:
  
  TeamFixture_ModelAdmin (ModelAdmin)
      list_display = ('date','sport_name','venue_name','team1_name','team2_name',)
  </code></pre>
  
  <p>Administration for all other models are fine with several thousand records at the moment and all views in the actual site is functioning fine.</p>