Здесь я пытаюсь отобразить линейную диаграмму студентов, добавленных в каждом месяце определенного года.Но у меня есть небольшая проблема здесь.Проблема в сценарии.Например, у меня есть только студенты, добавленные в june(1 students)
и july(6 students)
, а в другой месяц число студентов составляет zero
. Но при отображении june
и july
число студентов находится в jan
и feb
месяц.Я думаю, что единственное решение - сделать labels
в сценарии динамическим, как это {{student.month|date:'F'}},
, но я хочу добавить все 12 месяцев в labels
, даже если в некоторые месяцы нет учеников.Как я могу это сделать?
views.py
def home(request):
students_according_to_month = Student.objects.annotate(month=TruncMonth(F('joined_date'))).values('month')
.annotate(total=Count('pk'))
template
<script>
/* LINE CHART */
var ctx3 = document.getElementById('chartLine1');
var myChart3 = new Chart(ctx3, {
type: 'line',
data: {
labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun','July','Aug','Sep','Oct','Nov','Dec'],
datasets: [{
label: '# of Votes',
data: [
{% for student in students_according_to_month %}
{{student.total}},
{% endfor %}
],
borderColor: '#dc3545',
borderWidth: 1,
fill: false
}]
},
options: {
legend: {
display: false,
labels: {
display: false
}
},
scales: {
yAxes: [{
ticks: {
beginAtZero:true,
fontSize: 10,
max: {{students|length}}
}
}],
xAxes: [{
ticks: {
beginAtZero:true,
fontSize: 11
}
}]
}
}
});
</script>