Nuestro grupo de trabajo ha pasado mucho tiempo investigando respuestas a tus interrogantes, te dejamos la respuestas de modo que nuestro objetivo es que sea de gran ayuda.
Solución:
Puedes usar widthratio
filtro incorporado para multiplicación y división.
Para calcular A*B:% widthratio A 1 B %
Para calcular A/B:% widthratio A B 1 %
fuente: enlace
Aviso: para números irracionales, el resultado se redondeará a entero.
Debe utilizar una etiqueta de plantilla personalizada. Los filtros de plantilla solo aceptan un único argumento, mientras que una etiqueta de plantilla personalizada puede aceptar tantos parámetros como necesite, haga su multiplicación y devuelva el valor al contexto.
Querrá consultar la documentación de la etiqueta de plantilla de Django, pero un ejemplo rápido es:
from django import template
register = template.Library()
@register.simple_tag()
def multiply(qty, unit_price, *args, **kwargs):
# you would need to do any localization of the result here
return qty * unit_price
Que puedes llamar así:
% load your_custom_template_tags %
% for cart_item in cart.cartitem_set.all %
% multiply cart_item.quantity cart_item.unit_price %
% endfor %
¿Está seguro de que no desea que este resultado sea una propiedad del artículo del carrito? Parecería que necesitarías esta información como parte de tu carrito cuando hagas el pago.
O puede establecer la propiedad en el modelo:
class CartItem(models.Model):
cart = models.ForeignKey(Cart)
item = models.ForeignKey(Supplier)
quantity = models.IntegerField(default=0)
@property
def total_cost(self):
return self.quantity * self.item.retail_price
def __unicode__(self):
return self.item.product_name
Te mostramos las reseñas y valoraciones de los usuarios
Si haces scroll puedes encontrar las acotaciones de otros desarrolladores, tú igualmente eres capaz dejar el tuyo si te apetece.