2012-07-13 12 views

Respuesta

12

Justin Hamades answer

class PO(models.Model) 
    qty = models.IntegerField(null=True) 
    cost = models.IntegerField(null=True) 

    @property 
    def total(self): 
     return self.qty * self.cost 
+1

¿Qué pasa con la respuesta de @ ahsan, es exactamente lo que necesita? – Ahsan

+0

Y esto es sutilmente erróneo, ya que el total no es una propiedad, es un método. – datashaman

+3

@MarlinForbes ¿no es 'total = propiedad (_get_total) idéntica' a' @ propiedad'? Verifique [aquí] (http://www.artima.com/weblogs/viewpost.jsp?thread=240808). – agconti

35

Puede hacer total un campo property, ve el docs

class PO(models.Model) 
    qty = models.IntegerField(null=True) 
    cost = models.IntegerField(null=True) 

    def _get_total(self): 
     "Returns the total" 
     return self.qty * self.cost 
    total = property(_get_total) 
+0

¿Hay alguna manera de que podamos hacerlo como un cálculo de costos y cant? – rechie

+0

'total' se comportará como un campo, puede acceder a él a través del objeto de clase como otros campos. – Ahsan

+0

@Secator ... ¡Gracias! – rechie

Cuestiones relacionadas