Группировка аннотаций в кверисете
order_list = Order.objects.filter(
is_deleted=0, order_status__in=[4], order_type=0)
order_list_data = order_list.annotate(
customer_gross_sum=F('invoice__original_amount') -
F('invoice__discount_amount')+F('invoice__tax_amount'),
dcount=Count('user_id'),customer_transactions=F('invoice__transaction_invoice__transaction_amount'))
print(order_list_data.values())
из таблицы выше, customer_transactions в queryset вызывается в столбце payment в таблице. Второй и третий в таблице - это один и тот же счет с двумя транзакциями. Возможно ли свести это к одним данным.
ШАБЛОН
<table id="table">
<thead>
<td class="no-sort">Sl No</td>
<td class="no-sort">BILL DATE</td>
<td class="no-sort">BILL NO</td>
<td>BILL VALUE (Rs)</td>
<td>PAYMENT (Rs)</td>
<td>BALANCE (Rs)</td>
</thead>
{% for data in order_list_data %}
<tr>
<td>{{forloop.counter}}</td>
<td>{{data.invoice.bill_date}}</td>
<td>{{data.invoice.bill_no}}</td>
<td>{{data.customer_gross_sum}}</td>
<td>{{data.customer_transactions}}</td>
<td></td>
</tr>
{% endfor %}
</table>
Попробуйте это:
order_list_data = order_list.annotate(
bill_date=F('invoice__bill_date'),
bill_no=F('invoice__bill_no'),
customer_gross_sum=F('invoice__original_amount') - F('invoice__discount_amount') + F('invoice__tax_amount'),
customer_transactions=F('invoice__transaction_invoice__transaction_amount'),
dcount=Count('user_id'),
).values(
'bill_date',
'bill_no',
).annotate(
gross=Sum('customer_gross_sum'),
transactions=Sum('customer_transactions')
)
А затем в вашем шаблоне:
<td>{{forloop.counter}}</td>
<td>{{data.bill_date}}</td>
<td>{{data.bill_no}}</td>
<td>{{data.gross}}</td>
<td>{{data.transactions}}</td>