Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def save(self, *args, **kwargs):
- '''
- в дополнение ко стандартной процедуре сохранения
- обновить цену заказа в соответствии
- с ценами на продукты и добавки
- '''
- products_price_expression = ExpressionWrapper(F('amount') * F('price'),
- output_field=models.DecimalField(max_digits=10,
- decimal_places=2))
- products = self.products.annotate(
- additions_price=models.Sum('additions__price'),
- product_price=products_price_expression)
- order_price = products.aggregate(order_price=models.Sum(F('additions_price') + F('product_price')))
- print(order_price['order_price'])
- price = 0
- for product in products:
- print(product.additions_price, product.product_price)
- product_price = (product.additions_price or 0) + product.product_price
- price += product_price
- self.price = price
- return super().save(*args, **kwargs)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement