Как сделать так, чтобы django не выводил html?
У меня есть модель:
class NewsItem(models.Model):
meta_title = models.CharField(_('Meta title'), max_length=255, blank=True, null=True,
help_text=mark_safe('Tag <title>'))
Но на странице у меня есть:
<div class="form-row field-meta_title">
<div>
<label for="id_meta_title">Meta title:</label>
<input type="text" name="meta_title" class="vTextField" maxlength="255" id="id_meta_title">
<div class="help">Tag <title></div>
</div>
</div>
Как сказать django не рендерить html?
mark_safe(…)
[Django-doc] указывает Django not экранировать HTML. Таким образом, он будет не переводить <
в <
и т.д., и в результате HTML окажется HTML-кодом в выводимых результатах.
Опустив часть mark_safe(…)
, вы таким образом отобразите это как Tag <Title>
, что появится на странице как Tag <title>
.
Django, таким образом, автоматически экранирует HTML-контент, записанный как текст справки, значения и т.д. Вы должны использовать mark_safe(…)
только в том случае, если вы хотите отобразить HTML-содержимое как HTML-содержимое.