Я пытаюсь построить график из базы данных, используя конечную точку axios для получения данных. Я подозреваю, что это как-то связано с форматом. Как я вижу, все еще вижу правильные данные при переходе к api / chart / data /.
У меня есть две переменные, одна работает нормально, а другая не определена:
total_km и sorted_vehicle_list
поэтому, когда я console.log (метки), он сказал: «Ошибка: невозможно прочитать свойство« скрыто »из неопределенного» * 1005 *
P.S. sorted_vehicle_list имеет один единственный экземпляр и возвращается в виде списка [] (который, я уверен, в этом проблема)
Я попытался напечатать вывод запроса в views.py, и вывод был правильным. Он возвращает данные, которые мне нужны, но почему-то Chart.js не видит их.
class ChartData(APIView):
authentication_classes = []
permission_classes = []
def get(self, request, format=None):
all_vehicles = LoggerRecord.objects.values('imei').distinct()
vehicle_list = []
for vehicle in all_vehicles:
vehicle_list.append(vehicle['imei'])
sorted_vehicle_list = sorted(vehicle_list)
#create sum km
total_km = LoggerRecord.objects.aggregate(Sum('distance'))
print(total_km)
print(all_vehicles)
data = {
'all_vehicles': all_vehicles,
'total_km': total_km
}
return Response(data)
axios.get(endpoint)
.then(function (response) {
labels = response.data.sorted_vehicle_list
total_km = response.data.total_km
console.log(labels)
console.log(total_km)
var ctx = document.getElementById('myChart').getContext('2d');
var chart = new Chart(ctx2, {
// The type of chart we want to create
type: 'bar',
// The data for our dataset
data: {
labels: labels,
datasets: [{
label: 'Total KM',
backgroundColor: 'rgb(255, 99, 132)',
borderColor: 'rgb(255, 99, 132)',
data: total_km
}]
}
//console.log(response);
})