2011-06-25 48 views
0

我有以下型號型號:Django的,與 「DEF自我」 價值,SUM合計不工作

類PurchaseOrderLine(models.Model):

productcode = models.ForeignKey(OurProduct, on_delete=models.PROTECT) 

price = models.DecimalField (max_digits=6, decimal_places=2) 

qty = models.IntegerField() 


def linetotal(self): 

    from decimal import * 

    total = (self.price * self.qty) 

    return total 

在我VIEWS.PY我想總計行數:

tot=PurchaseOrderLine.objects.aggregate(total=Sum('linetotal'))['total'] 

return HttpResponse(tot) 

但它返回FIELDERROR「無法將關鍵字'linetotal'解析爲字段」???

在查詢中,我可以替換Sum('linetotal')Sum('price')並且它可以正常工作,但不能與def linetotal(self)一起使用。

+1

否否Linetotal不是字段。因此數據庫無法在其上聚合。爲什麼這應該是意外的? –

回答

1

linetotal屬性在數據庫級別不存在,那麼ORM將如何處理它?您需要執行查詢使用extra

for purchase_order_line in PurchaseOrderLine.objects.extra(select={'total': 'price * qty'}): 
    print purchase_order.total