multiplicación en django en django
¿Cómo puedo multiplicar dos números en un modelo de presupuesto? Por ejemplo, quiero multiplicar las horas de trabajo y la tarifa por hora… Luego, quiero sumar esa cifra al costo total de todo… Por favor, ayúdame.
from django.db import models
from django.contrib.auth.models import User
from .directors import Directors
class ApprovedBudget(models.Model):
job=models.CharField(max_length=255)
time=models.DateTimeField()
labourhours=models.IntegerField()
rate=models.DecimalField(max_digits=9, decimal_places=2)
materials=models.DecimalField(max_digits=9, decimal_places=2)
travel=models.DecimalField(max_digits=9, decimal_places=2)
other=models.DecimalField(max_digits=9, decimal_places=2)
notes=models.CharField(max_length=450)
budget=models.DecimalField(max_digits=9, decimal_places=2)
actual=models.DecimalField(max_digits=9, decimal_places=2)
undercover=models.DecimalField(max_digits=9, decimal_places=2)
status = models.CharField(max_length=12,default='pending')
#pendiente, aprobado, rechazado, cancelado
is_approved = models.BooleanField(default=False)
#oculto
updated = models.DateTimeField(auto_now=True, auto_now_add=False)
created = models.DateTimeField(auto_now=False, auto_now_add=True)
objects = Directors()
class Meta:
verbose_name = ('ApprovedBudget')
verbose_name_plural = ('ApprovedBudget')
def __str__(self):
return str(self.job)
@property
def labour(self):
if(self.labourhours != None ):
labour=self.labourhours*self.rate
return labour
davy.ai
Para multiplicar las horas de trabajo y la tarifa por hora en el modelo presupuestario, puedes usar el decorador
@property
para crear un campo calculado llamadolabour
. Esto multiplicará las variableslabourhours
yrate
, y devolverá el resultado comolabour
.Aquí tienes un ejemplo de fragmento de código:
Para añadir el
labour
alcosto total
, puedes modificar el campobudget
en el métodosave
. Aquí tienes un ejemplo de fragmento de código:Este código actualizará el campo
budget
cada vez que se guarde un objetoApprovedBudget
, sumando los camposmaterials
,travel
,other
ylabour
.