Ребят, подскажите пожалуйста как лучше сделать?
У юзера есть ЛК в котором выводится список совершенных транзакций.
Нужно сгруппировать их по ticker и просуммировать.
Я это сделал следующим образом:
context['agr'] = Deals_add.objects\
.filter(portfel_id=self.kwargs['portfel_id'], author=self.request.user)\
.values('ticker_bumagi__ticker', 'ticker_bumagi__named', 'ticker_bumagi__currency', 'ticker_bumagi__price', 'ticker_bumagi__deals_add__kupiti_prodat')\
.annotate(Sum('kolichestvo'),
Sum('komiss'),
cena__sum=Sum( Cast('ticker_bumagi__price', output_field=DecimalField())*Cast('kolichestvo', output_field=DecimalField()) ),
cena__avg=Sum( Cast('cena', output_field=DecimalField())*Cast('kolichestvo', output_field=DecimalField()) )/ Sum('kolichestvo', output_field=DecimalField()),
profit=Sum( (Cast('ticker_bumagi__price', output_field=DecimalField()) - Cast('cena', output_field=DecimalField()) ) * Cast('kolichestvo', output_field=DecimalField()) - Cast('komiss', output_field=DecimalField())),
)\
.order_by('ticker_bumagi__named')
Все отлично вывелось, но проблема в следующем:
у всех транзакций есть 'buy' , 'sell' - мой код просто суммирует все( и покупки и продажи), а нужно что бы сделки с 'buy' складывались, 'sell' - вычитались из общей суммы.
Уже несколько дней бьюсь над этим и никак не могу сообразить...
Может кто с подобным сталкивался, есть какие-то идеи?