Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Multiplicar campos

Estas en el tema de Multiplicar campos en el foro de Python en Foros del Web. Hola, tengo una aplicación para carrito de compras, y quiero multiplicar los campos de Precio*cantidad, para despues sumarlo con todos los pedidos. Mi modelo es ...
  #1 (permalink)  
Antiguo 31/05/2013, 13:26
Avatar de _Ju
_Ju
 
Fecha de Ingreso: noviembre-2008
Ubicación: Colima, MX
Mensajes: 192
Antigüedad: 15 años, 5 meses
Puntos: 6
Multiplicar campos

Hola, tengo una aplicación para carrito de compras, y quiero multiplicar los campos de Precio*cantidad, para despues sumarlo con todos los pedidos.

Mi modelo es el siguiente


Código:
class Compra(models.Model):
	cliente = models.ForeignKey(User)
	platillo = models.ForeignKey(Platillo)
	sucursal = models.ForeignKey(Sucursal)
	fecha = models.DateTimeField(auto_now = True)
	cantidad = models.SmallIntegerField(null = False, default = 0)
	num_pedido = models.CharField(max_length = 200)
	extra = models.TextField()
	domicilio = models.BooleanField(default = True)
	estatus = models.BooleanField(null = False, default = False)

	def multiplica(self):
		m = self.cantidad * self.platillo.precio
		return m

	def __unicode__(self):
		return self.platillo.nombre_platillo
Con eso puedo obtener el resultado de cantidad*precio para cada producto en el template de esta forma

Código:
{% for pedido in carrito %}
    ${{ pedido.multiplica }}
{% endfor} %
Pero ahora quiero sumar todos los resultados de {{pedido.multiplica}}

Gracias
__________________
www.grupogalco.net

Twitter: @jugalvez
  #2 (permalink)  
Antiguo 31/05/2013, 13:41
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Multiplicar campos

Creo que lo mejor sería hacer el cálculo en la vista, ya que los pedidos no veo que tengan alguna relación.


PD: Me imagino, ¿que pasa si un pedido quiero dos platillos distintos?


Saludos
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 31/05/2013, 14:04
Avatar de _Ju
_Ju
 
Fecha de Ingreso: noviembre-2008
Ubicación: Colima, MX
Mensajes: 192
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: Multiplicar campos

Si, deseo hacer el cálculo en la vista, hasta ahora tengo esto.

Código Python:
Ver original
  1. carrito = Compra.objects.filter(cliente = usuario, num_pedido = 200, estatus = False).order_by('-pk')

Con eso me regresa la información de cada pedido, con uno o varios platillos. Pero no se como hacer el cálculo de:

Código Python:
Ver original
  1. platillo1 = HotDog, costo: $20, cantidad: 5
  2. platillo2 = Tacos, costo: $15, cantidad: 10
  3.  
  4. total = platillo1(costo*cantidad)  + platillo2(costo*cantidad)  #regresa $250

No se si me explico con claridad, saludos
__________________
www.grupogalco.net

Twitter: @jugalvez
  #4 (permalink)  
Antiguo 31/05/2013, 14:11
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Multiplicar campos

Pues tan sencillo como un for:

Código Python:
Ver original
  1. total = 0
  2. for compra in carrito:
  3.     total += (compra.cantidad * compra.platillo.precio)

Saludos
__________________
Grupo Telegram Docker en Español
  #5 (permalink)  
Antiguo 31/05/2013, 14:13
Avatar de _Ju
_Ju
 
Fecha de Ingreso: noviembre-2008
Ubicación: Colima, MX
Mensajes: 192
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: Multiplicar campos

Creo que me estaba quebrando la cabeza de más, jeje. Estaba buscando otra forma mucho más compleja :S

Gracias
__________________
www.grupogalco.net

Twitter: @jugalvez

Etiquetas: campos, multiplicar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:53.