Как я могу написать это представление эффективно? - PullRequest
0 голосов
/ 10 июля 2010

У меня есть простое представление в Django:

@render_to('episode_list.html')
def list_episodes(request, season):
    query = Episode.objects.filter(season=season)
    seasons = query[0].series.total_seasons    
    return  {'episodes': query,
             'season': season,
             'max_seasons':range(1,seasons + 1)}

Я пытаюсь построить навигацию по моему шаблону динамически и мне нужно 'max_seasons', чтобы сделать это ... Есть ли лучший способ получитьэта информация, так как кажется, что это сделает дополнительный запрос к базе данных.

«.series» ссылается на внешний ключ.

1 Ответ

0 голосов
/ 10 июля 2010

Настроить это будет query = Episode.objects.select_related('series').filter(season=season) будет следовать fk в первом обращении к БД, что означает, что вам не понадобится другой, но он будет извлекать / предварительно извлекать больше результатов Series, чем тот, который вам (кажется) нужен, если набор запросов query содержит более одного результата (возможно, лучше назвать это episodes для ясности?).

(Но даже если он тянет больше, чем нужно, скорее всего, все равно будет быстрее)

Официальные документы здесь

...