2009-08-02 48 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