Pregunta

Tengo un javascript que tiene dos variables es decir dos listas es una lista de los números y la otra lista de cadenas de Django / Python

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

El numbersvar se hace perfectamente, pero cuando lo haga {{}} stringsvar que no la hace.

¿Fue útil?

Solución

Tal vez será mejor utilizar un JSON módulo para crear una lista de javascript?

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

Otros consejos

¿Qué contiene stringsvar? La lista, o la representación de cadena de la lista?

Le sugiero que pase la representación de cadena Javascript correcto de la lista a partir del método objeto de la plantilla para rendir. Python y literales de matriz de JavaScript tienen la misma sintaxis, por lo que podría hacer:

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

Y en la plantilla:

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

O puede utilizar el serializador JSON, esto tiene la ventaja añadida de que usted será capaz de pasar a otros tipos de valores.

from django.core import serializers
def my_view(request):
    return render_template("...", stringsvar=serializers.serialize("json", the_list))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top