2010-06-23 6 views
1

je le Javascript suivant entre les balises dans un modèle:variable de modèle Django ne pas être rendu en JavaScript

YAHOO.util.Event.addListener(window, "load", function() { 
YAHOO.example.Taco = function() { 
    var myColumnDefs = [ 
     {% for field in included_fields %} 
      {key:"{{ field }}", sortable:true, resizeable:true}, 
     {% endfor %} 
    ]; 

    var myDataSource = new YAHOO.util.XHRDataSource("http://192.168.1.15:5555/yuidt/list"); 
    myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON; 
    myDataSource.responseSchema = { 
     resultsList: "people", 
     fields : [ {{field_list}} ] 
    }; 

    var myDataTable = new YAHOO.widget.DataTable("basic", 
      myColumnDefs, myDataSource, {caption:"DataTable Caption"}); 

    return { 
     oDS: myDataSource, 
     oDT: myDataTable 
    }; 
}(); 

});

La valeur de field_list est la chaîne « première », « dernier », « téléphone »

champs se prépare à rien d'une façon. Donc, {{field_list}} semble ne pas être rendu.

Dans le corps sur la page j'ai <p>{{field_list}}</p> qui affiche "premier", "dernier", "téléphone" comme prévu. Cela me fait penser que c'est une sorte de problème d'échappement, j'ai essayé | addslashes mais ce n'était pas une aide.

Toutes les suggestions seront grandement appréciées.

Merci.

+0

Ceci pourrait être utile pour déboguer ceci: http://docs.djangoproject.com/fr/dev/ref/templates/api/#how-invalid-variables-are-handled. En outre, êtes-vous sûr qu'il n'y a pas d'étiquette de bloc autour du code que vous nous montrez qui pourrait causer ce problème? –

+2

Pour ce que ça vaut, utilisez le filtre 'safe' pour désactiver tout autoescaping d'une chaîne. Je doute vraiment que cela puisse résoudre votre problème. –

+0

A quoi ressemble le JS rendu si vous affichez la source? Est-ce que quelque chose ne va pas avec le Javascript lui-même? – sdolan

Répondre

1

Comme Eric a dit qu'il peut être résolu en utilisant un filtre sûr!

Questions connexes