Django шаблонов форм - PullRequest
       0

Django шаблонов форм

2 голосов
/ 22 февраля 2020
{% if form.subject.errors %}
    <ol>
    {% for error in form.subject.errors %}
        <li><strong>{{ error|escape }}</strong></li>
    {% endfor %}
    </ol>
{% endif %}

Я взял приведенный выше код из шаблона, форма передается под ключом 'form'. Однако я никогда раньше не сталкивался с | escape? Есть | или побитовый оператор?

1 Ответ

2 голосов
/ 22 февраля 2020

Нет, это шаблонный шаблон |escape [Django -doc] . Как указано в документации:

Экранирует строку HTML. В частности, он выполняет следующие замены:

  1. < преобразуется в &lt;
  2. > преобразуется в &gt;
  3. ' ( одинарная кавычка) преобразуется в &#x27;
  4. " (двойная кавычка) преобразуется в &quot;
  5. & преобразуется в &amp;

Применение экранирования к переменной, к которой обычно применяется автоматическое экранирование, применяется только к одному раунду экранирования. Таким образом, безопасно использовать эту функцию даже в условиях автоматического экранирования. Если вы хотите применить несколько проходов, используйте фильтр force_escape.

Скорее всего, в блоке {% autoscape off %}&hellip;{% endautoescape %} [Django -doc ] , так как по умолчанию Django уже ускользает от предметов. Таким образом, он удостоверится, что если переменная является строкой, содержащей символы, которые можно интерпретировать как html, они будут экранированы, чтобы предотвратить это.

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