【问题标题】:How to safely render html in a div in Django templates如何在 Django 模板中的 div 中安全地呈现 html
【发布时间】:2017-03-17 10:19:44
【问题描述】:

我的视图正在返回一个模型对象,该对象有一个值作为 HTML 代码的字段。

def my_view(request):
    ob = MyModel.objects.get(pk=1)
    print ob.html   # "<div> Description <span> number </span>"
    return render(request,'page.html',{'ob':ob})

我的一些 html 值没有正确关闭标签,例如

<div> Description <span> number </span>

如果我在模板中呈现该值,例如 {{ ob.html |安全 }},它破坏了父元素结构,我的页面没有按照我的设计对齐。

如何在不破坏父结构的情况下安全地放置 HTML 代码。

【问题讨论】:

标签: html django django-templates


【解决方案1】:

一种选择是使用bleach 来清理内容:

因为它依赖于 html5lib,Bleach 与现代浏览器一样好 处理奇怪的、古怪的 HTML 片段。以及漂白剂的任何方法 将修复不平衡或错误嵌套的标签。

您可以通过django-bleach 使用它,它附带一个随时可用的filter for your templates

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    相关资源
    最近更新 更多