В таблице хранятся наименование, цена, количество товара. Причем одно наименование может быть с разными ценами. Также есть поле "тип операции" (typedoc) для каждой строки. 1 - приход товара, 2 - начальный остаток, 3 - продажа за наличные, 4 - продажа через терминал и т.д. Я пытаюсь получить набор записей с наименованиями, ценой и количеством товара по этой цене. То есть количество = сумма начальных остатков(typedoc=1) + приход(typedoc=2) - продажи(typedoc=3,4) Мой код работает, но кажется очень медленно... Подскажите правильное решение, я только начинаю учить Django. Я делаю так: выбираю все записи из таблицы:

 data=DocJurnal.objects.order_by('title')

А затем в цикле получаю нужные значения:

for good in data:
name = good.title
price=good.saleprice
goodid = good.title.id
category=good.title.category.title
category_id=good.title.category.id
prihod=DocJurnal.objects.filter(title=good.title).filter(typedoc=1).filter(saleprice=price).aggregate(Sum('volume'))
ostatok = DocJurnal.objects.filter(title=good.title).filter(typedoc=2).filter(saleprice=price).aggregate(Sum('volume'))
spisanie = DocJurnal.objects.filter(title=good.title).filter(typedoc=3).filter(saleprice=price).aggregate(Sum('volume'))
cash=DocJurnal.objects.filter(title=good.title).filter(typedoc=4).filter(saleprice=price).aggregate(Sum('volume'))
term = DocJurnal.objects.filter(title=good.title).filter(typedoc=5).filter(saleprice=price).aggregate(
    Sum('volume'))
rest=ostatok['volume__sum'] + prihod['volume__sum'] - spisanie['volume__sum'] - cash['volume__sum'] - term['volume__sum']

Код ужасный! Работает медленно. Подскажите правильный способ... В общем, мне надо получить такой набор данных - наименование, цена, количество с учетом проведенных операций. Если товар имеет одно наименование, но разные цены - количество по каждой цене. Спасибо!