0

Je crée un tableau très simple (je dois lister la première ligne comme titres?) Et l'analyser des vues. py to template ...Google datatable - convertir la chaîne "date" en nouvelle date réelle() pour la colonne entière (setCell ??)

def index(request): 
    array = [['date','a','b'],["2014,3,3", 10, 8], ["2014,8,3", 6, 4]] 
    return render_to_response('template/index.html', {'array': json.dumps(array)}) 

Dans mon template je fais du JS pour créer un google chart, ce qui fonctionne très bien.

var djangoData = {{ array|safe }}; 
     var data = google.visualization.arrayToDataTable(djangoData); 

Le problème est que sur mon tableau, les dates ne sont que des chaînes, donc si je l'ai fait plusieurs lignes il n'y aurait pas prise en compte de la date à temps réel. Comment convertir les colonnes en google nouvelle date (aa/mm/jj/hh/mm/ss) etc.?

J'ai essayé des tas de choses comme setCell, setValue mais rien n'a semblé fonctionner. Si un setCell fonctionnait, j'aurais essayé une méthode comme setColumn aussi.

mon (ne fonctionne pas) le code de la méthode SetCell était le suivant:

data.setCell(1,0,(data.getCell(1,0))); 
    data.setCell(2,0,(data.getCell(2,0))); 

Essayer de changer la date-élément donné dans le tableau de "2014,3,3" dans une date de table google reconnu ...

Il semble comme un problème très simple, mais je me bats :(

Merci,

Fred

Répondre

0

Il est important de noter que selon la question liée, il n'est pas possible de modifier un type de données d'une colonne. C'est pourquoi quand j'ai essayé de convertir et de remplacer, ça ne marchera pas. Lien: Google Visualization Changing Column Data Type

Dans le google doc on peut voir qu'il n'y a pas de fonctions de type set, juste une propriété/valeur/étiquette. Mais à moins que je l'ai manqué, je n'ai pas vu qu'il était impossible de le faire avec une colonne.

Dans tous les cas, j'ai utilisé la technique de la colonne remplacer il/elle a démontré, de faire quelques changements pour le faire fonctionner pour une date:

data.insertColumn(0, 'date', data.getColumnLabel(0)); 
    // copy values from column 1 (old column 0) to column 0, converted to numbers 
    for (var i = 0; i < data.getNumberOfRows(); i++) { 

     val = data.getValue(i, 1); 
     //document.write(new Date(val)); 

     data.setValue(i, 0, new Date(val)); 
    } 
    // remove column 1 (the old column 0) 
    data.removeColumn(1);