Итоги\Промежуточные итоги в Django

Я новичок в django и у меня есть проблема с получением правильного макета отчета. У меня есть модель Contract, и у меня есть определенные проблемы с получением следующего макета отчета:

Bussines unit: x
    contractnox  client1  net_price vat price
    contractnoy  client2  net_price vat price
    .....
    Bussines unit x subtotals: net_price, vat, price
Bussines unit: y
    you get the point

Totals in the end.

Моя модель контракта выглядит следующим образом:

class Contract(models.Model):
    contract_no = models.IntegerField(verbose_name='Number:')
    client= models.CharField( max_length=50, verbose_name='Client:')
    address = models.CharField( max_length=50, verbose_name='Address:')
    date = models.DateField(default=timezone.now, verbose_name='Contract date:')
    price = models.FloatField(max_length=10,default=10.00, verbose_name='Price:')
    vat = models.FloatField(max_length=10,default=0.00, verbose_name='VAT:')
    net_price = models.FloatField(max_length=10,default=0.00, verbose_name='Net price:')
    canceled = models.BooleanField(default=False, verbose_name='Canceled:')
    business_unit=models.ForeignKey('BussinesUnit', on_delete=models.CASCADE, verbose_name='Bussines unit')

Я попробовал это в режиме просмотра:

b_units= BussinesUnit.objects.all()
contract= Contract.objects.filter(canceled=False)
data={}
for unit in b_units:
    data[unit] = contract.filter(business_unit=unit.pk),\
    contract.filter(business_unit=unit.pk).aggregate(price_sub=Sum('price')),\
    contract.filter(business_unit=unit.pk).aggregate(net_price_sub=Sum('net_price')),\
    contract.filter(business_unit=unit.pk).aggregate(vat_sub=Sum('vat')),\
    contract.filter(business_unit=unit.pk).aggregate(items_sub=Count('contract_no'))

    context = {
            'bussines_units': data
        }

В отчете я сделал следующее:

    {% for data, data_items in bussines_units.items %}
  
     {{ data }}
        
    <div>
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
                <td class='detailsCenter' style="width: 5.5%">Contract</td>
                <td class='detailsCenter' style="width: 33%">Client</td>
                <td class='detailsCenter'style="width: 28.5">Adress</td>
                <td class='detailsRight'style="width: 11%">Net price</td>
                <td class='detailsRight' style="width: 11%">VAT</td>
                <td class='detailsRight' style="width: 11%">Price</td>

            </tr>

            {% for data in data_items%}
                
                {% for x in data%}
                    <tr>
                        <td class='detailsCenter' style="width: 5.5%">{{x.contract_no}}</td>
                        <td class='details' style="width: 33%">{{x.client}}</td>
                        <td class='detailsCenter'style="width: 28.5%">{{x.adress}}</td>
                        <td class='detailsRight'style="width: 11%">{{x.net_price}}</td>
                        <td class='detailsRight'style="width: 11%">{{x.vat}}</td>
                        <td class='detailsRight'style="width: 11%">{{x.price}}</td>   
                    </tr>

                    
                {%endfor%}
                
                <tr>                                  
                        <td class='detailsCenter' style="width: 5.5%"></th>
                        <td class='details' style="width: 33%">Subtotal</th>
                        <td class='detailsCenter'style="width: 28.5%">{{data.items_sub}}</td>
                        <td class='detailsRight'style="width: 11%">{{data.net_price_sub}}</td>
                        <td class='detailsRight'style="width: 11%">{{data.vat_sub}}</td>
                        <td class='detailsRight'style="width: 11%">{{data.price_sub}}</td>
                </tr>

            {% endfor %}
        </table>
    </div>
    {% endfor %}

Я получаю требуемые результаты, но промежуточные итоги, похоже, размещаются в нескольких строках, а я хочу, чтобы они размещались в одной строке, поэтому любая помощь в этом вопросе была бы замечательной. Прилагается скриншот разбросанных элементов.

введите описание изображения здесь

Я использую xhtml2pdf для получения отчетов в формате pdf, если это может быть полезно для этой проблемы.

Вернуться на верх