Поле суммы моделей django из отношения внешнего ключа

У меня отношение один ко многим.

class Invoice(models.Model):
    stuff

class Item(models.Model):
    invoice = models.ForeignKey(Invoice)
    qty = models.IntegerField()
    unit_price = models.DecimalField(max_digits=4, decimal_places=2)

Я хочу сделать запрос, чтобы выбрать все строки в счете-фактуре и сумму цен всех элементов для каждого счета-фактуры, и получить к нему доступ через набор запросов

, например , поэтому, если счет-фактура №1 содержит 2 товара , каждый с qty = 2 и unit_price = 3 , счет №1 будет иметь ] amount 2x2x3 = $ 12

ОБНОВЛЕНИЕ:

Вот то, что у меня есть, но оно дает мне обратную связь

inv_list = \
Invoice.objects.select_related().all()\
.aggregate(sum=sum('item__unit_price')).order_by('-inv_date')

TypeError at /site/invoice/
unsupported operand type(s) for +: 'int' and 'str'

ОБНОВЛЕНИЕ

Спасибо за вводные данные, я взял несколько очередей и в конце концов создал новый column unit_amount , добавлено дополнительное действие к методу .save () , чтобы выполнить prod_qty * unit_price и сохранить его в новом столбце.

, а затем сделали следующее:

inv_list = Invoice.objects.all()\
.annotate(amount=Sum('item__unit_amount')).order_by('-inv_date')
5
задан bash- 11 October 2011 в 17:58
поделиться