Estoy experimentando un problema extraño con el que no me había encontrado antes. Mi html se genera a través de plantillas de Django y consta de un código básico que inicializa un DataTable basado en una cadena de consulta con algunas variables GET (es decir, "/report1/?filter1=abc&filter2=def").
Sin embargo, de repente, cada vez que escribo la variable de plantilla de Django dentro de una etiqueta <script></script> , & se convierte en & , como esto:
<script> var link = "/report1/?filter1=abc&filter2=def" </script> Sin embargo, cuando no está dentro de una etiqueta de secuencia de script , la cadena se muestra como se pretendía originalmente: "/report1/?filter1=abc&filter2=def"
Esto se basa exactamente en la misma variable de plantilla de Django sin cambios.
¿Qué pasa con el script que hace que el & se codifique? Esto sucede en las versiones actuales de Edge y Firefox. Django claramente no sabe nada sobre las etiquetas <script></script> , por lo que debe ser una cuestión del navegador.
¿Alguna idea de cómo evitar que esto suceda? Es algo que no parecía suceder en el pasado.
¡Gracias!
Como referencia, mi plantilla de Django se parece a esto:
{{ string }}<br> <script> var link = "{{ string }}" </script>De acuerdo, entonces mi lío, cuando actualicé a las últimas versiones, olvidé darme cuenta de que las cadenas debían marcarse con |safe ahora
Por supuesto, me di cuenta de esto solo después de escribir esta publicación.