Question

J'ai un javascript qui prend deux variables i.e. deux listes est une liste des numéros et l'autre liste de chaînes de django / python

numbersvar = [0,1,2,3]
stringsvar = ['a','b','c']

Le numbersvar est rendu parfaitement mais quand je fais {{}} stringsvar elle ne rend pas.

Était-ce utile?

La solution

Peut-être qu'il sera préférable d'utiliser un JSON module pour créer une liste javascript?

>>> a = ['stste', 'setset', 'serthjsetj']
>>> b = json.dumps(a)
>>> b
'["stste", "setset", "serthjsetj"]'
>>> json.loads(b)
[u'stste', u'setset', u'serthjsetj']

Autres conseils

Qu'est-ce que contient stringsvar? La liste, ou la représentation de chaîne de la liste?

Je vous suggère de passer la représentation chaîne javascript correcte de la liste de la méthode d'affichage sur le modèle de rendre. Python et JavaScript littéraux de tableau ont la même syntaxe, de sorte que vous pouvez faire:

def my_view(request):
    return render_template("...", stringsvar=str(the_list))

Et dans le modèle:

<script language="javascript">
stringsvar = {{ stringsvar }};
...
</script>

Vous pouvez aussi utiliser le sérialiseur JSON, ce qui a l'avantage supplémentaire que vous serez en mesure de passer d'autres types de valeurs.

from django.core import serializers
def my_view(request):
    return render_template("...", stringsvar=serializers.serialize("json", the_list))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top