Демонстрация преобразования данных в Chartjs с помощью django
Я пытаюсь отобразить данные о количестве пациентов в месяц на гистограмме с помощью chartjs
Данные отправляются из бэкенда нормально, но проблема в том, что я не знаю, как распределить их на графике, где ось X - 12 месяцев текущего года.
вот код:
views.py
class DataChart(APIView):
def get(self, request, format=None):
now = datetime.datetime.now()
year = now.year
month = now.month
label = [datetime.datetime.today() + datetime.timedelta(days=i) for i in range(1, 10)]
patien = Patient.objects.filter(date_joined__year__gte=year,
date_joined__month__gte=month,
date_joined__year__lte=year,
date_joined__month__lte=month ).count()
default_items = [patien]
data = {
"labels":label ,
"default":default_items
}
return Response(data)
скрипт chartjs
$(document).ready(function() {
var endpoint = '/api/chart/'
var defaultData = []
var monthls = []
$.ajax({
method: "GET",
url: endpoint,
success: function(data){
labels = data.labels
defaultData = data.default
setData()
},
error: function(err_data){
console.log("error")
console.log(err_data)
}
})
function setData(){
const ctx = document.getElementById('myChart');
new Chart(ctx, {
type: 'bar',
data: {
labels:labels,
datasets: [{
label: 'Patients',
data:defaultData ,
borderWidth: 1
}]
},
options: {
scales: {
x: {
type: 'time',
time: {
unit: 'day'
}
},
y: {
beginAtZero: true
}
}
}
});
}
});
Метки, которые отправляются из представлений, просто показывают даты в формате дня, и не работают хорошо также потому, что они даже не показывают текущий день по какой-то причине