我试图编写一个方法来对我的"页面中的view_count值进行求和"在模型中,但由于某种原因,我在模板上得到的结果是以奇怪的方式编写的Overall views: {'view_count__sum': 9}
该模型如下所示:
class Page(models.Model):
name = models.CharField(max_length=20, primary_key=True)
content = models.TextField(blank=True)
view_count = models.IntegerField (default= 0)
edits = models.IntegerField(default=0)
这是我的视图片段,其中我尝试为我的模板定义上下文方法:
def context_count(request):
page_count = Page.objects.count()
tracker = Page.objects.all().aggregate(Sum(F('view_count'), output_field=IntegerField()))
def __str__(self):
return self.tracker
return { 'page_quantity':page_count, 'page_viewcount':tracker}
为了确保我完全填满你,这是我的模板用来显示变量的代码行
<p>
Overall views: {{page_viewcount}}
</p>
我意识到我已经跳过了一些基本的东西,但我感谢我对此有任何意见。
答案 0 :(得分:1)
来自Django docs:
aggregate()是QuerySet的终止子句,在调用时, 返回名称 - 值对字典。
tracker
是一本字典。所以你需要回复:
return { 'page_quantity':page_count, 'page_viewcount':tracker['view_count__sum'] }