Estoy descargando JSON en la vista de Django y luego analizando JSON en JS para obtener los datos.
Mi vista.py (Django)
ibms = [] for i in range(2, 5): ibm = Mapa(i, wsMapa) ibms.append(ibm.__dict__) ibms = json.dumps(ibms) return render(request, 'mapas/index.html', {'ibms': ibms}) La salida de la variable de ibm en la plantilla de Django es:
[{"numeroIbm": "AUTO P"}, {"numeroIbm": "PTB"}, {"numeroIbm": "FAROL"}]Mi index.html (JS adentro)
{{ ibms|json_script:"ibms" }} <script> const mydata = JSON.parse(document.getElementById("ibms").textContent); const mydata2 = JSON.parse(mydata); </script> El problema es: tengo que JSON.parse doble de veces para obtener el objeto JS. La variable mydata , a pesar de JSON.parse , es de tipo cadena. Solo obtengo el resultado final cuando JSON.parse por segunda vez ( mydata2 ).
¿Qué está pasando, por favor?
¡Gracias de antemano!
No debe volcarlo en la vista, así que:
ibms = [Mapa(i, wsMapa).__dict__ for i in range(2, 5)] return render(request, 'mapas/index.html', {'ibms': ibms})y así analizarlo como:
{{ ibms|json_script:"ibms" }} <script> const mydata = JSON.parse(document.getElementById("ibms").textContent); // no second parse </script>