Существует ли способ плавного подсчета общего объема продаж с помощью JS в Django
Я ищу способ получить информацию, вводимую в базу данных, и не только подсчитать общий итог за год, но и подсчитать итог за отдельные месяцы. Я использую Django и Javascript.
Вид Django:
@login_required
def proposal_signed(request):
prop = Proposal.objects.all().order_by('proposal_approved_date')
return render(request, 'client/proposal_signed.html', {
'prop': prop,
})
HTML и JS:
{% extends 'client/base.html' %}
{% block content %}
<br>
<div class="jumbotron jumbotron-fluid">
<div class="container">
<div class="text-center">
<h1 class="display-4"> Sales For Signed Proposals </h1>
</div>
</div>
</div>
<head>
<style>
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #dddddd;
}
</style>
<title></title>
</head>
<div class="container">
<table id="countit">
<tr>
<th><strong>Approval Date:</strong></th>
<th><strong>Job Type:</strong></th>
<th><strong>Address:</strong>
<th><strong>Client:</strong></th>
<th><strong>Bid/Job Total:</strong></th>
</tr>
{% for item in prop %}
{% if item.proposal_approved_date %}
<tr>
<td>{{ item.proposal_approved_date }}</td>
<td>{{ item.client.requested_service }}</td>
<td>{{ item.client.work_site_address }}</td>
<td>{{ item.who_to_bill_name }}</td>
<td class="count-me">{{ item.client.invoice_set.get.bill_amount }}</td>
</tr>
{% endif %}
{% endfor %}
</table>
<script language="javascript" type="text/javascript">
var tds = document.getElementById('countit').getElementsByTagName('td');
var sum = 0;
for(var i = 0; i < tds.length; i ++) {
if(tds[i].className === 'count-me') {
sum += isNaN(tds[i].innerHTML) ? 0 : parseInt(tds[i].innerHTML);
}
}
document.getElementById('countit').innerHTML += '<tr><td><strong>Total:</strong></td><td>' + sum + '</td></tr>';
</script>
</div>
<br>
<br>
{% endblock %}
Это дает мне таблицу со значениями и общей суммой для элементов в Bid/Job Total внизу, но мне нужна помощь в разбивке по месяцам и годам. Сумма за месяц является гибкой.
Спасибо за любую помощь, Дейс