Wagtail вставьте код в тело (streamfield) - PullRequest
1 голос
/ 12 марта 2019

Возможно ли вставить html любым другим способом, кроме RawHTML?RawHTML представляет собой угрозу, и мне было интересно, могу ли я сделать это по-другому.

Заранее спасибо!

1 Ответ

2 голосов
/ 12 марта 2019

Как говорит @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>
...