2015-05-19 16 views
-2

我一直在研究視頻分享網站。我正在使用Django 1.6。有一個頁面,用戶可以觀看任何特定的視頻。此外,還有一部分「熱門視頻」,其中根據觀看次數列出了熱門視頻。我想知道我們是否可以在單個視圖函數中多次查詢同一個模型。我的代碼如下..我們可以在Django的同一視圖中的模型上多次查詢嗎?

def watch(request, video_id): 
     video_to_watch = Video.objects.get(id=video_id) 
     popular_videos = Video.objects.filter(views__gt=100) 
+1

你試過了嗎? – Raniz

+1

django 1.6不再支持btw,如果你現在開始,從1.8或1.7開始,如果沒有1.8的教程。 – skolsuper

回答

1

是的,你可以在單個視圖中查詢同一模型多次,只要你想。

+0

感謝catavaran,但是當我嘗試將popular_videos上下文傳遞到模板中時,它不會顯示爲{%for popular_videos%} {{video.track_name}} {%endfor%} – a134man

+1

添加'打印popular_videos'語句到視圖並查看devserver控制檯的輸出。這個清單是空的嗎? – catavaran

0

是的,你可以多次查詢一個模型。您的場景的最佳方式是使用模型管理器。

class PopularManager(models.Manager): 
    def get_queryset(self): 
     return super(PopularManager, self).get_queryset().filter(views__gt=100) 

class Video(models.Model) 
    .... 
    popular = PopularManager() 

你可以得到像這樣的流行影片。

popular_videos = Video.popular.all() 
+0

感謝朋友們的真誠幫助,現在它們都按預期工作。 – a134man

+0

啊thanx你可以使用投票,如果你認爲這個答案是有用的 –

相關問題