2010-02-18 6 views
-1

J'essaie de rendre la table triable qui est fourni dans l'API de visualisation Google dans mon application sur App Engine, mais il ne fonctionne pas. L'application est écrite en python et utilise le framework django.visualisation Google api sur le moteur de l'application ne fonctionne pas ... (python)

Lorsque je copie le code HTML généré/Javascript et l'enregistrer comme un fichier HTML brut localement, il fonctionne très bien. Cela me porte à croire que le problème est que http://www.google.com/jsapi '> n'est pas inclus ou n'est pas en mesure de fonctionner.

Quelqu'un d'autre rencontre cela? Ai-je manqué un morceau de configuration dans app.yaml?

Merci!

EDIT: Voici le code HTML qui est en cours de production:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1 DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title> 
     Test 
    </title> 
    <link href="/css/css.css" rel="stylesheet" type="text/css" /> 
    <script type='text/javascript' src='http://www.google.com/jsapi'></script> 
    <script type='text/javascript'> 
     google.load('visualization', '1', {packages:['table']}); 
     google.setOnLoadCallback(drawTable); 
     function drawTable() { 
     var data = new google.visualization.DataTable(); 
     data.addColumn('string', 'Number'); 
     data.addColumn('string', 'Status'); 
    data.addColumn('string', 'Nickname'); 
     data.addColumn('string', 'Target'); 
    data.addColumn('string', 'Recording'); 
     data.addRows(2); 

     data.setCell(0, 0, '0987654321'); 

    data.setCell(0, 1, 'Active'); 

     data.setCell(0, 2, 'Nothing'); 
     data.setCell(0, 3, '1234567890'); 

    data.setCell(0, 4, 'Enabled'); 

    data.setCell(1, 0, '0987654321'); 

    data.setCell(1, 1, 'Active'); 

     data.setCell(1, 2, 'Nothing'); 
     data.setCell(1, 3, '1234567890'); 

    data.setCell(1, 4, 'Enabled'); 


     var table = new google.visualization.Table(document.getElementById('table_div')); 
     table.draw(data, {showRowNumber: true}); 
     } 
    </script> 
</head> 
<body> 
    <div id='table_div'></div> 
</body> 
</html> 

Cela fonctionne bien si elle est enregistrée en tant que fichier html.

app.yaml: 

application: testapp 
version: 2 
runtime: python 
api_version: 1 

handlers: 
- url: /(.*\.(mp3|wav)) 
    static_files: \1 
    upload: (.*\.(mp3|wav)) 

- url: /css 
    static_dir: css 

- url: /.* 
    script: main.py 
+3

Sérieusement, comment pourrions-nous savoir? Nous ne savons pas à quoi ressemble votre app.yaml, ni le HTML/JS. Je pense que vous devez nous donner quelque chose à regarder afin que nous puissions vous aider. Aussi, parlez-vous du serveur de développement ou d'une application déployée? – balpha

+0

D'autres choses qui aideraient à rendre la question responsable seraient ce que vous voulez dire par «ne pas travailler». que voyez-vous sur l'écran? –

+0

balpha: Nice .... commentaire grossier et aucune aide ... peut-être que vous ne devriez pas perdre votre temps à poster si vous n'avez rien d'utile à dire. – Sologoub

Répondre

0

En cas où quelqu'un d'autre a ce problème - je foiré les en-têtes de la page générée en rendant avec la même fonction que j'ai créé pour la sortie XML.

Y compris ce égorgea: handler.response.headers [ "Content-Type"] = "text/xml"

0

Attendez, où effectuez-vous le rendu? Le truc visapi va du côté client. Est-ce là où vous l'avez? (Désolé si cela est évident, il est vraiment pas tout à fait claire de la façon dont vous avez écrit la question.)

Plus de détails serait certainement aider.

+0

Merci, et oui, c'est du côté client. J'ai posté le code HTML et le fichier app.yaml. Je suis sûr à 99% que le problème est avec app.yaml ou avec un javascript distant. – Sologoub

+0

Je n'ai jamais eu à faire quoi que ce soit * à app.yaml pour que ça marche. FWIW. –

+0

Ah, et maintenant j'ai eu l'occasion de regarder votre code généré. Votre problème est votre code. Je pense que vous confondez "fonctionne sur le html généré" pour "fonctionne par accident quand exactement les bonnes choses se produisent dans le bon ordre." Si vous corrigez cela, cela fonctionnera aussi avec l'appengine. –

Questions connexes