Django+;计算/
如何获得“分数”的结果Django+;计算/,django,Django,如何获得“分数”的结果 def look(request, marcador): look = get_object_or_404(Look, marcador=marcador) num_votos = Voto.objects.filter(look=look) valores = num_votos.aggregate(soma=Sum('valor')) score = valores / num_votos ??? <- error def外观(
def look(request, marcador):
look = get_object_or_404(Look, marcador=marcador)
num_votos = Voto.objects.filter(look=look)
valores = num_votos.aggregate(soma=Sum('valor'))
score = valores / num_votos ??? <- error
def外观(请求,marcador):
look=get\u object\u或404(look,marcador=marcador)
num\u votos=Voto.objects.filter(look=look)
valores=num_votos.aggregate(soma=Sum('valor'))
分数=valores/num_votos 您可以使用Avg
计算平均值:
score = Voto.objects.filter(look=look).aggregate(score=Avg('valor'))['score']
代码不起作用的原因是num\u votos
是一个查询集,而不是一个数字。如果您使用了score=valores['soma']/num\u votos.count()
如果您使用的是Python 2,valores['soma']/num\u votos.count()
仍然是一个整数除法,并返回一个整数,而不是实际的平均值。使用from\uuuuu future\uuuu import division
将其转换为“真除法”,因此它返回一个浮点值 关于Avg
的观点很好!还请注意,还应使用valores['soma']
,而不仅仅是valores
。