2010-07-10 39 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

調整它是query = Episode.objects.select_related('series').filter(season=season) 將遵循FK在第一DB命中,這意味着你不會需要另一個,但它會拉/預取多個系列效果比單一個你(好像),如果需要查詢集query包含多個結果(爲清楚起見,可能更好地稱其爲episodes)。

(但是,即使它拉比你更需要的,它很可能仍然會更快)

官方的文檔here

+0

非常酷,非常感謝。 – tkorg 2010-07-10 10:50:36