Domanda

Ho un javascript che richiede due variabili cioè due liste uno è un elenco di numeri e l'altra lista di stringhe da Django / Python

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

Il numbersvar è reso perfettamente, ma quando lo faccio {{}} stringsvar non rendono.

È stato utile?

Soluzione

Forse sarà meglio usare un json modulo per creare un javascript liste?

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

Altri suggerimenti

Che cosa significa stringsvar contiene? La lista, o la rappresentazione di stringa della lista?

vi consiglio di passare la rappresentazione di stringa javascript corretta della lista dal metodo vista del modello per il rendering. Python e JavaScript letterali di array hanno la stessa sintassi, in modo che si possa fare:

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

E nel template:

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

In alternativa, è possibile utilizzare il serializzatore JSON, questo ha il vantaggio che si sarà in grado di passare altri tipi di valori pure.

from django.core import serializers
def my_view(request):
    return render_template("...", stringsvar=serializers.serialize("json", the_list))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top