Estoy tratando de pasar una lista de python con valores de cadena de views.py a la plantilla donde un javascript usa lo mismo para las etiquetas de un gráfico circular (plotly). El problema es que cuando la lista se recibe en el front-end, la lista obtiene el código hexadecimal de la cotización que es ' en lugar de las comillas. ¿Cómo convertirlo a cotización? Aquí está el fragmento:
var trace1 = { x: {{labels}}, y: {{values}}, marker:{ color: ['rgba(204,204,204,1)', 'rgba(222,45,38,0.8)', 'rgba(204,204,204,1)', ] }, type: 'bar' };Ahora, obtengo los valores para 'etiquetas' como:
['One', 'Two', 'Three']En vez de:
['One','Two','Three']Solo quería saber si hay algún método para evitar esto fácilmente en lugar de usar métodos de reemplazo de cadenas.
Por razones de seguridad, Django evita las comillas (y muchos otros caracteres) cuando representa la plantilla.
Si está seguro de que estos datos no son dañinos (es decir, los usuarios de su sitio no los ingresan), puede usar el filtro safe en la plantilla:
{{ my_list | safe }} El filtro safe le dice a Django que los datos son confiables y, por lo tanto, no se escaparán.
Advertencia: no use un filtro safe si los datos que muestra en las plantillas los envían los usuarios de su sitio. Eso podría conducir a ataques XSS .
Si alguna vez necesita utilizar safe con los datos enviados por el usuario, primero debe desinfectar los datos mediante el uso de lejía o django-bleach .