2010-07-10 2 views
0

У меня есть простой вид в 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» относится к внешнему ключу.

ответ

0

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

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

Официальные документы являются here

+0

Очень здорово, спасибо большое. – tkorg

Смежные вопросы