这应该是一个非常简单的问题,但谷歌搜索一直很困难,我在官方文档中找不到答案。我试图在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
答案 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']
。