Почему теги скриптов автоматически преобразуют & в &?
У меня возникла странная проблема, с которой я раньше не сталкивался. Мой 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 теперь
Конечно, я понял это только после написания этого поста.