如何删除{'field _avg':在Django模板中打印avg时

时间:2017-02-23 01:19:43

标签: python django

这应该是一个非常简单的问题,但谷歌搜索一直很困难,我在官方文档中找不到答案。我试图在Django中平均一个字段,我已经弄明白了,但是当我在模板中打印它时,我得到了令人讨厌的“{'field__avg':”打印以及实际值。如何删除它并仅打印实际值?或者,我如何调用该值以便在某些逻辑中使用它?

views.py:

from django.db.models import Avg
def event_detail(request, slug):
    starsavg = UserLog.objects.filter(climb__slug=slug).aggregate(Avg('stars'))
    return render(request, 'event_detail.html', {
        'starsavg': starsavg, 
})

然后在我的模板中我有:

{{ starsavg }}

哪个输出:

{'stars_avg': 2.75}

我希望它只输出:

2.75

1 个答案:

答案 0 :(得分:1)

聚合查询集的产品是字典{'stars_avg': 2.75}。就像任何其他Python字典一样,您可以使用点表示法在Django模板中访问其值。在这种情况下,它将是:{{starsavg.stars_avg}}

以下是使用点表示法访问模板中的值的文档。 https://docs.djangoproject.com/en/1.10/ref/templates/api/#variables-and-lookups

否则,如果您想要处理视图代码中的值,您可以像在Python中使用普通的Python字典一样访问它:starsavg['stars_avg']