我有以下型号:
UrlTree
并且,有了这些数据:
class Cierre(models.Model):
bus=models.ForeignKey(Bus)
ruta=models.ForeignKey(Ruta,editable=False)
conductor=models.ForeignKey(Conductor,editable=False)
total_pasajeros = models.IntegerField(editable=False)
total_viaje = models.FloatField(editable=False)
如果列'Ruta'和列''导体'重复,我需要加入相应的列'valor total viaje'。我想要的结果是:
Ruta Bus conductor Total pasajeros Valor total viaje
1 qwe789 1111111 50 107500.0
1 qwe789 1111111 100 215000.0
2 qwe789 1111111 50 102500.0
我试过了:
Ruta Bus conductor Total pasajeros Valor total viaje
1 qwe789 1111111 50 322500.0
2 qwe789 1111111 50 102500.0
和
cierre = Cierre.objects.annotate(sales=Sum('ruta'))
答案 0 :(得分:0)
cierre = Cierre.objects.distinct()
答案 1 :(得分:0)
此查询似乎可以执行您想要的操作:
Cierre.objects.values("ruta", "bus").annotate(total_viaje = Sum("total_viaje"))
它产生:
<QuerySet [
{'bus': u'qwe789', 'ruta': 1L, 'total_viaje': 322500.0},
{'bus': u'qwe789', 'ruta': 2L, 'total_viaje': 102500.0}
]>
然而,这个查询忽略了列&#34; Total pasajeros&#34;,因为在你的例子中你任意选择使用值50而不是100用于ruta = 1的行,所以我认为它是无关。如果您还想要添加&#34; total_pasajeros&#34;的值,您也可以添加另一个.annotate()和SUM该列:)