【问题标题】:how to remove html tags in django template on browser while showing to user如何在向用户显示时在浏览器上删除 django 模板中的 html 标签
【发布时间】:2021-03-30 22:38:57
【问题描述】:

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

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

tag error

【问题讨论】:

    标签: django django-views django-templates ckeditor4.x django-ckeditor


    【解决方案1】:

    要删除标签,我建议使用 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"])
    

    【讨论】:

    • 是否影响通过 django ck-editor 上传图片
    • @mgbhargava 不,不应该,这只是您如何呈现文本字段的输出。但是,仅建议在保存模型之前修改来自此类编辑器的输入,以确保用户没有使用这些富文本编辑器添加 javascript、框架或其他代码注入方式。
    猜你喜欢
    • 2018-07-02
    • 2014-01-21
    • 1970-01-01
    • 2011-09-30
    • 2018-02-11
    • 1970-01-01
    • 2018-02-01
    • 2020-08-02
    • 2012-10-11
    相关资源
    最近更新 更多