如何在向用户显示时删除浏览器上 django 模板中的 html 标签

问题描述

如图所示,我在 django 3.0 polls 应用程序中使用了 {{options|safe}} 来渲染选项,即使它是这样渲染的,我不知道如何删除

标签来自渲染的字符串,提前感谢您的帮助 regarding

tag error

解决方法

要删除标签,我建议使用 Mozilla 的 bleach 库。

为了只在前端移除标签,而不是数据本身,您可以轻松创建一个 custom template filter 并清理其中的标签。

另一个很酷的想法是拥有可以使用的已启用 HTML 标记列表(例如使用 <b>...</b> 将文本加粗),然后将输入呈现为有效的 html:

{{ options|remove_tags|safe }}

自定义模板过滤器示例:

@register.filter
def remove_tags(value):
    return bleach.clean(value,tags=["b","i"])