0
我想製作一個sumarized庫存報告。要做到這一點我有我的模式是這樣的:Django Group_By和SUM查詢
class Inventario(models.Model):
producto = models.ForeignKey(Producto)
cantidad = models.DecimalField(default=0,decimal_places=2, max_digits=10)
ubicacion = models.ForeignKey(Ubicacion, null=True, blank=True)
def __unicode__(self):
return self.producto.item
在SQL-RAW我會像SELECT producto.nombre as item, sum(cantidad) as cantidad,... FROM Inventario GROUP BY item
用正確的加入課程
的,我會得到這樣的:
|Item------- | Cantidad|
|PROD1 | 20 |
|PROD2 | 10 |
而不是
|Item------- | Cantidad|
|PROD1 | 5 |
|PROD1 | 5 |
|PROD1 | 10 |
|PROD2 | 9 |
|PROD2 | 1 |
我想要使用它的Django的方式,其實我有
productos = Inventario.objects.filter(cantidad__gt=0).aggregate(Sum('cantidad'))
這將返回我只cantidad_sum:30
UPDATE 我現在明白了GROUP BY與此代碼
query = Inventario.objects.all().query
query.group_by = ['inventario_inventario.producto_id']
productos = QuerySet(query=query, model=Inventario)
,但現在我不知道如何使 「SUM」 功能:/
我已經嘗試過註釋,但是這仍然返回整個表格,就像沒有任何GROUP_BY – 2014-11-03 22:23:33
對不起 - 對了。嘗試鏈接「.values('producto')」 - 這應該給你分組。我更新了我的答案以反映這 – 2014-11-03 22:27:49
'values'產生了魔力,但是...我得到了producto的ID,你知道如何從外鍵獲取一個值嗎?像producto.item?或者producto.description?謝謝 – 2014-11-03 22:31:11