Джанго 1.2.5
Python: 2.5.5
Мой список администраторов спортивных моделей только что стал очень медленным (5 минут на 400 записей). Он возвращался через секунду или около того, пока мы не получили 400 игр, 50 нечетных команд и 2 вида спорта.
Я исправил это ужасным образом, так что я хотел бы посмотреть, видел ли кто-нибудь это раньше. Мое приложение выглядит так:
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',)
Если я удалю все внешние ключи из list_display, то это быстро. Как только я добавлю какой-либо внешний ключ, медленно.
Я исправил это, используя не внешние ключи, но вычислил их в init модели, так что это работает:
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',)
Администрирование для всех других моделей в настоящее время работает с несколькими тысячами записей, и все представления на реальном сайте работают нормально.