Форум сайта python.su
Добрый день. Нужна помощь.
Есть модель
class CartItem(...)
cart_id = models.CharField(...)
quantity = models.IntegerField(...)
price = models.DecimalField('Цена за единицу (новая)',
max_digits=8, decimal_places=2,
default=0)
Офлайн
стандартно не реализуется, но зато вы можете быстро посчитать количество cart_id (навеяно документацией к джанге).
Офлайн
а если в модели ввести:
def total(self): return self.price*self.quantity
Офлайн
inoks
не пробовал конечно, но все же
.extra(select=("lineprice": "cartitem__price*cartitem__quantity")).aggregate(Sum('lineprice'))
Офлайн
Singularity,
наверное будет работать.
Вообще мне больше всего нравится первое решение по ссылке:
http://stackoverflow.com/questions/12165636/django-aggregation-summation-of-multiplication-of-two-fields
Офлайн
inoks
данные которые тебе нужны один раз и которые будут вечно висеть в базе это разве хорошо?
Агрегация это ок.
Офлайн
От задачи зависит, в данном конкретном случае я бы хранил сумму
Офлайн