Wagtail 将代码插入正文(streamfield)

Wagtail insert code into body (streamfield)

是否可以使用 RawHTML 以外的任何其他方式插入 html? RawHTML 是一种威胁,想知道我是否可以用另一种方式来做。

提前致谢!

正如@gasman 在他对这个问题的评论中所说,无论您给编辑提供什么表单字段,插入 HTML 都会带来相同的风险。

但是,您可以在块类型上实施 .clean() 方法,使用 Bleach.

清理 HTML

例如只允许 <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>