Встроенный HTML-код в строку Python не отображается должным образом в Django
Я столкнулся с проблемой, когда вставляю HTML-код в view.py моего python'а. В принципе, моя цель - настроить цвет только определенных слов (на основе ввода). Я хочу сделать это, изменив view.py
Например (мой view.py):
def home(request):
form = request.POST.get('uncorrected')
texts = str(form) + '<span style="color: red">test text but this section is red</span>'
return render(request, 'corrector/home.html', {'text': texts})
Внутри моего index.html:
<textarea type="text" id="textarea" name="uncorrected">
{{ text }}
</textarea>
Однако, когда я набираю "мой текст" в текстовой области, он отображает только:
my text <span style="color: red">test text but this section is red</span>
Не делает текст красным, а напрямую отображает код. Как я могу заставить его работать?
Django автоматически экранирует HTML для предотвращения XSS-атак. Для того чтобы отобразить HTML как HTML, вы просто вставляете safe
.
{{ text|safe }}
Django по-прежнему будет экранировать HTML, но он также будет его рендерить