【发布时间】:2020-02-20 12:38:56
【问题描述】:
我想按类别 (mora_dias_categoria) 获取元素的数量,该类别是模型字段的计算,但它没有正确分组。
这是我尝试过的:
metricasColombia = MetricasPrestamosColombia.objects \
.annotate(mora_cantidad =Sum(F('total_habia_que_recibir')-F('total_recibido'))) \
.annotate(mora_dias_categoria = Case(
When(Q(mora_cantidad__gt=0) & Q(mora_dias__gt=0) & Q(mora_dias__lte=30),then=Value('mora_030')),
When(Q(mora_cantidad__gt=0) & Q(mora_dias__gt=30) & Q(mora_dias__lte=60),then=Value('mora_3060')),
When(Q(mora_cantidad__gt=0) & Q(mora_dias__gt=60) & Q(mora_dias__lte=90),then=Value('mora_6090')),
When(Q(mora_cantidad__gt=0) & Q(mora_dias__gt=90),then=Value('mora_90')),
default=Value('No mora'),
output_field=CharField()
)) \
.values('semana','idPrestamo_id__idContactoInfo_id__ciudad__nombreCiudad','mora_dias_categoria') \
.annotate(totalPrestamos=Count('idPrestamo_id'))
但仍然得到这个输出(应该聚合时有重复):
[{'semana': '1-2020', 'idPrestamo_id__idContactoInfo_id__ciudad__nombreCiudad':
'Medellín', 'mora_dias_categoria': 'mora_030',
'totalPrestamos': 1}, {'semana': '1-2020', 'idPrestamo_id__idContactoInfo_id__ciudad__nombreCiudad':
'Medellín', 'mora_dias_categoria': 'mora_030', 'totalPrestamos': 1}...
非常感谢!
【问题讨论】:
标签: python django django-orm