Django странно интерпретирует безопасный фильтр

У нас есть шаблон django, но у меня есть странная проблема с данными, которые являются rich-text.

Пример:

шаблон: <p class="correctClass">{{team.description|safe}}</p>

исходный код для team.description в нашей CMS: <p>Correct text</p>

результат:

<p class="correctClass"></p>
<p>Correct text</p>
<p></p>

без безопасного фильтра это выглядит так:

<p class="correctClass">
    <p>Correct text</p> (this line is text, not parsed as html)
</p>

Конечно, желаемый результат:

<p class="correctClass">Correct text</p>

если вы хотите добиться этого, вы можете использовать striptags.

<p class="correctClass">{{team.description|striptags}}</p>

" Обратите внимание, что striptags не дает никаких гарантий того, что его вывод будет безопасным для HTML, особенно при использовании не валидного HTML. Поэтому НИКОГДА не применяйте безопасный фильтр к выводам striptags. Если вы ищете что-то более надежное, вы можете использовать библиотеку bleach Python, в частности, ее метод clean.". Из официальной документации
. за дополнительной информацией обращайтесь к https://docs.djangoproject.com/en/3.2/ref/templates/builtins/#striptags

Вернуться на верх