Как говорит @gasman в своем комментарии к вопросу, вставка HTML сопряжена с одинаковыми рисками, независимо от того, какое поле формы вы предоставляете редакторам.
Однако вы можете реализовать метод .clean()
длятип вашего блока, который очищает HTML с помощью Bleach .
, например, чтобы разрешить только <p>
теги:
>>> raw_html = """<p id='foo' class='dangerous'>
<script>console.log('bar');</script>
<b>Hello</b>
</p>"""
>>> html = bleach.clean(raw_html,
tags=['p'],
attributes={'p': ['id']},
strip=True)
>>> print(html)
<p id='foo'>Hello</p>