Cómo pasar una matriz en Django a una plantilla y usarla con JavaScript

Quiero pasar una matriz a una plantilla y luego usarla a través de JavaScript.

En mi views.py tengo:

arry1 = ['Str',500,20] return render_to_response('test.html', {'array1': arry1}) 

Y en mi plantilla:

 var array1 = {{ array1 }}; 

pero cuando visito el website produce:

 var array1 = ['Str',500,20]; 

¿Qué tengo que cambiar?

4 Solutions collect form web for “Cómo pasar una matriz en Django a una plantilla y usarla con JavaScript”

Intenta usar {{ array1|safe }} y mira si eso hace alguna diferencia. No he probado esto, así que espero que no me decanté demasiado si esto no es correcto …

Como se mencionó, puede usar el filter | safe para que Django no desinfecte la matriz y la deje como está.

Otra opción, y probablemente la mejor para el largo ploop, es usar el module simplejson (está incluido con django) para formatear su list de Python en un object JSON en el que puede escupir nuevamente al Javascript. Puede recorrer el object JSON como lo haría con cualquier matriz realmente.

de django.utils import simplejson

list = [1,2,3, 'String1']

json_list = simplejson.dumps (list)

render_to_response (template_name, {'json_list': json_list})

Y en tu Javascript, solo {{json_list}}

En Django:

 from django.utils import simplejson json_list = simplejson.dumps(YOUR_LIST) 

Y PASE "json_list" EN CONTEXTO

EN JS:

 var YOUR_JS_LIST = {{YOUR_LIST|safe}}; 

Podría ser hecho por django core serializers. Todo lo que necesita hacer es serializar sus datos en json y pasarlos a la plantilla.

 data = serializers.serialize("json", <list>) return render(request, 'view.html', {'data':data}) 

En su plantilla, guarde esta list en la variable javascript.

 var list = {{data|safe}} 
  • anulando tr onclick
  • Elemento Refresh <div> generado por una plantilla django
  • usar la variable javascript en la plantilla django
  • Utilice las tags de plantilla de Django en jQuery / Javascript?
  • Django y Moustache usan la misma syntax para la plantilla
  • Django Admin: ¿Pre-poblando valores de POST o GET?
  • Fecha de Django para javascript en la plantilla
  • Carga automática de contenido al desplazarse hacia abajo
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.