Специальный символ с контекстной переменной - PullRequest
0 голосов
/ 10 октября 2018

В моем шаблоне django у меня есть:

<strong>Copyright &copy; </strong> {{ copyright }}

Где:

copyright = "Company &copy; 2014-2018"

Который показывает:

Copyright © Company &copy; 2014-2018

Почему первый символ в порядке, ивторой нет?

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Django автоматически экранирует HTML в тегах по умолчанию.Если вы хотите включить html, используйте

 {{copyright|safe}}
0 голосов
/ 10 октября 2018

Шаблон Django экранирует переменные , поэтому &copy;становится &amp;copy в отображаемом шаблоне, который отображается как &copy; в вашем браузере.

Вы можете предотвратить выход, избегая этого, используя mark_safe в вашем представлении,

from django.utils.safestring import mark_safe
copyright = mark_safe("Company &copy; 2014-2018")

Или с помощью фильтра safe в шаблоне.

{{ copyright|safe }}

Обратите внимание, что пометить эту строку как безопасную можно только потому, что вы контролируетезначение.Вы всегда должны избегать ввода от пользователей, в противном случае вы уязвимы для атак XSS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...