Estoy enviando la lista de django desde view.py a mi javascript. Pero cuando recibo la lista en javscript, solo me devuelve una cadena. Intenté imprimir el tipo de variable pero me muestra falso, lo que significa que no es una lista de matrices. Entonces, ¿cómo puedo recuperar la lista como matriz en Javascript?
Ver.py
mergedCompare = [item_listAssigned[f'subject{i}'] + ': ' + item_listAssigned[f'serial{i}'] for i in range(1, len(item_listAssigned) // 2 + 1)] global context context = { 'mergedCompare': mergedCompare } mergedCompare = ['EMP004: BPCE-RNHC-25G8', 'EMP003: 8FIW-9JRB-NY4J', 'EMP005: 7QF2-6HI9-XKZZ', 'EMP002: SG8P-YQKG-ZV3C', 'EMP001: PBF7-WZHT-WPZR']
JavaScript:
var assignedDevices = "{{mergedCompare|safe}}" const list = assignedDevices; console.log(Array.isArray(list)) //false , not arrayPuede representar el contenido JSON como una secuencia de comandos de JavaScript con el filtro de plantilla |json_script [Django-doc] . Luego puede cargar el blobk JSON con JSON.parse(…) :
{{ mergedCompare |json_script:"mergedCompare" }} <script> var assignedDevices = JSON.parse(document. getElementById('mergedCompare') .textContent); const list = assignedDevices; console.log(Array.isArray(list)) </script>Otros pocos enfoques además de la respuesta anterior:
# your view code ... return render(request, 'some.html', context = {"my_list": ["item1", "item2"]}) # your template code {{ my_list|safe }}.forEach // array import json # your view code ... mylist = json.dumps(mylistraw) return render(request, 'some.html', context = {"my_list": mylist}) # your template code var mylist = JSON.parse("{{mylist}}")