Estoy tratando de usar el gráfico de Google en mi proyecto Django, el gráfico de Google requiere un formato como ['label1', 'label2', 'label3', new Date(Y, m, d), new Date(Y, m, d), nulo, 100, nulo], es como una lista, así que primero trato de simplificar las cosas, solo reemplacé la fecha con etiquetas de plantilla y dejé otros campos como predeterminados. La plantilla tage funciona bien sola en el elemento P y el resultado de salida es "2014, 10, 12". Agradecería mucho si alguien puede echar un vistazo, saludos.
views.py
def visualisation(request, project_id): project = Project.objects.get(id=project_id) counts_data = Todo.objects.aggregate( to_do_count=Count('id', filter=Q(status='to_do')), in_progress_count=Count('id', filter=Q(status='in_progress')), done_count=Count('id', filter=Q(status='done')) ) todos = project.todo_set.order_by('-project_code') return render(request, 'todo_lists/progress.html', {"counts_data":counts_data,'team':team,'todos':todos}) HTML
function drawChart() { var data = new google.visualization.DataTable(); data.addColumn('string', 'Task ID'); data.addColumn('string', 'Task Name'); data.addColumn('string', 'Resource'); data.addColumn('date', 'Start Date'); data.addColumn('date', 'End Date'); data.addColumn('number', 'Duration'); data.addColumn('number', 'Percent Complete'); data.addColumn('string', 'Dependencies'); data.addRows([ {% for todo in todos %} ['Introduction', 'Introduction Project', 'Introduction', new Date({{ todo.start_date|date:"Y,m,d"}}), new Date({{ todo.due_date|date:"Y,m,d"}}), null, 50, null]{% if not forloop.last %},{% endif %}{% endfor %} ]);Está mezclando su bucle for con sus tipos de datos, lo que puede ser su problema. Creo que estarías mejor con algo como esto:
{% for todo in todos %} data.addRow( ['Introduction', 'Introduction Project', 'Introduction', new Date({{ todo.start_date|date:"Y,m,d"}}), new Date({{ todo.due_date|date:"Y,m,d"}}), null, 50, null] ); {% endfor %}Resolví el problema, resultó que el problema está en la etiqueta de la plantilla, la primera columna del conjunto de datos no puede ser la misma, de lo contrario, habría una salida de una fila, y dado que mi satrt_date y due_date están almacenados en la base de datos es lo mismo, por lo que no se mostró nada en el gráfico. Usé el siguiente código en mi HTML:
HTML'''
{% for todo in todos %} ['{{ todo.name }}', 'Introduction Project', 'Introduction', new Date({{todo.start_date|date:"Y, m, d"}}), new Date({{todo.due_date|date:"Y, m, d"}}), null, 50, null]{% if not forloop.last %},{% endif %} {% endfor %}'''