假设我有一些页面,显示一个页面的视图为checking foo
checking foo
checking foo
checking foo
checking foo
checking foo
checking foo
checking foo
checking bar
checking foo
checking bar
checking foo
checking foo
checking foo
checking foo
checking foo
checking foo
checking foo
checking foo
,并显示全部为PageDetail
。
PageList
我会跟踪一页的阅读次数:
class Page(models.Model):
title = models.CharField(max_length=255)
....
每次从每天的唯一会话调用class PageView(models.Model):
page = models.ForeignKey(Page)
ip = models.CharField(max_length=40)
session = models.CharField(max_length=40)
....
视图时,我都会创建一个新的PageDetail
对象。
这是一个基本的打击计数器。
现在在PageView
我想首先展示最受欢迎的网页。我可以PageList
和annotate
获取select_related
的列表,例如:
PageView
但我想要一个 views = PageView.objects.all().values('page__title').annotate(count = Count('page')).order_by('-count').prefetch_related('page')
s的查询集,而不是Page
的列表。
我错过了什么?