2009-08-02 44 views
12

所以我有兩個模型,一個排名模型和一個UserRanking模型。該應用集中於人們對項目進行清單排名並對其進行排名(例如:「2008年度最佳電影」)。排名模型是總體排名清單,它是根據人們爲該清單創建的所有不同用戶排名計算出來的。因此,對於每個排名,都有一堆不同的UserRankings,每個用戶通過提交他們的排名版本給出他/她的意見。 UserRanking模型有一個名爲'排名'的ForeignKey字段,指向排名模型。非常困惑...在Django中使用'註釋'的問題

無論如何,我想收集熱門排行榜。我的第一個步驟就是用這行代碼到與之相關的最UserRankings獲得排名:

popular = Ranking.objects.all().annotate(num_user_rankings=Count('userranking')).order_by('num_user_rankings')[:50] 

然而,Django的給了我一個NameError說:「全球名‘計數’沒有定義」。 它不會抱怨註釋(它只在Django開發版本中可用),這意味着Django開發工作正常嗎? 'Count'在Django文檔中被清楚地描述爲可用作註釋的arg的幾個集合函數之一。這絕對沒有意義。實際上,我測試了它,並且我能夠使用沒有參數的註釋顯示我的頁面,並且它沒有給我任何錯誤(顯然我也刪除了order_by)。所以註釋確實有效!

回答

32

您是從django.db.models導入的計數嗎?

+3

我不能相信答案是那麼簡單。我知道我在做一些愚蠢的事情,但沒有那麼愚蠢!謝謝,祝你有個美好的一天=) – 2009-08-02 01:11:15