En mi aplicación Django, tengo un modelo de gráfico circular muy básico con la columna de nombre como CharField y la columna de estadísticas como IntegerField. También tengo un código JavaScript en mi página html que muestra un gráfico circular, pero solo puedo hacerlo funcionar si codifico los valores como una matriz. En su lugar, esperaba mostrar los datos de mi modelo/base de datos como {{ values|safe }} en forma de gráfico circular, extrayendo los valores de los volcados json de mis datos de base de datos.
Esto es lo que probé, como se ve en mi archivo views.py :
def metrics(request): pietitle = serializers.serialize('json', PieChart.objects.all(),fields=('title')) piestats = serializers.serialize('json', PieChart.objects.all(),fields=('stats')) piedata=[[pietitle, piestats]] json_data = json.dumps(piedata) data_json= json.loads(json_data) return render(request, "metrics.html", {"values": data_json})En mi página HTML, el mensaje que recibo es simplemente "Sin datos", y estoy bastante seguro de que se debe a que cuando serializo el campo de estadísticas, se convierte en una cadena y no se puede interpretar como números enteros.
Asegúrese de que los datos estén en el formato correcto para el gráfico circular.
Con esta línea piedata=[[pietitle, piestats]] , si quisieras acceder al primer título tendrías que ir a data_json[0][0][0] y para el primer lote de estadísticas tendrás que ir data_json[0][1][0]
Editar respuesta basada en el comentario:
piedata = [] for i in range(len(pietitle)): piedata.append([pietitle[i], piestats[I]])