【发布时间】:2020-12-23 07:17:44
【问题描述】:
我有一个看起来像这样的视图集:
class EstadisticasEquipoViewSet(viewsets.ModelViewSet):
"""
Trae estadísticas totales de todos los equipos de una zona en una respectiva liga.
"""
serializer_class = EstadisticaEquiposSerializer
def get_queryset(self):
queryset = Estadistica_Equipo_Partido.objects.filter(id_partido__id_zona=self.request.query_params.get('id_zona')).values('id_equipo').annotate(
...
tot_puntos=Sum('puntos'),
prom_puntos=Avg('puntos'),
prom_q1=Avg('q1'),
prom_q2=Avg('q2'),
prom_q3=Avg('q3'),
prom_q4=Avg('q4'),
tot_tiros_campo_convertidos=Sum('tiros_campo_convertidos'),
prom_tiros_campo_convertidos=Avg('tiros_campo_convertidos'),
...
)
return queryset
如何在这些组中对字段进行分组:
- promedios -> 所有以 prom 开头的字段
- totales -> 所有以 tot 开头的字段
其实我有这个序列化器:
class EstadisticaEquiposSerializer(serializers.ModelSerializer):
...
tot_puntos = serializers.IntegerField()
prom_puntos = serializers.FloatField()
tot_tiros_campo_convertidos = serializers.IntegerField()
prom_tiros_campo_convertidos = serializers.FloatField()
tot_tiros_campo_intentados = serializers.IntegerField()
prom_tiros_campo_intentados = serializers.FloatField()
...
class Meta:
model = Estadistica_Equipo_Partido
fields = (...
'tot_puntos', 'prom_puntos', 'tot_tiros_campo_convertidos',
...
)
我需要这个 json:
{
"promedios":
{
"prom_puntos": 80,
"prom_tiros_campo_convertidos": 24,
...
},
"totales":
{
"tot_puntos": 1171,
"tot_tiros_convertidos": 684,
...
},
},
【问题讨论】:
-
你想要的结果中的数字来自哪里?
标签: python django django-rest-framework django-serializer django-rest-viewsets