Почему теги скриптов автоматически преобразуют & в &?
У меня возникла странная проблема, с которой я раньше не сталкивался. Мой html генерируется через шаблоны Django, и состоит из некоторого базового кода, который инициализирует DataTable на основе строки запроса с некоторыми GET переменными (например, "/report1/?filter1=abc&filter2=def").
Однако, внезапно, когда я записываю переменную шаблона Django внутри тега <script></script>
, &
преобразуется в &
, вот так:
<script>
var link = "/report1/?filter1=abc&filter2=def"
</script>
Однако, если строка не находится внутри тега script
, она выводится так, как было задумано изначально:
"/report1/?filter1=abc&filter2=def"
Это основано на точно такой же переменной шаблона Django без изменений.
Что в script
вызывает кодировку &? Это происходит в текущих версиях Edge и Firefox. Django явно ничего не знает о тегах <script></script>
, поэтому это должно быть особенностью браузера.
Есть идеи, как предотвратить это? Это то, что, похоже, не происходило в прошлом.
Спасибо!
Для справки, мой шаблон Django выглядит примерно так:
{{ string }}<br>
<script>
var link = "{{ string }}"
</script>
Ладно, моя ошибка, когда я обновился до последних версий, я забыл понять, что строки должны быть помечены |safe
теперь
Конечно, я понял это только после написания этого поста.