如何在Django模板中删除特定的HTML标记?

时间:2017-09-03 15:22:42

标签: python html django templates filter

我尝试在Django模板中使用striptags,但它删除了所有HTML标记。我只想删除特定的HTML标记,例如<p><h1>标记。我怎样才能在template中完成?

这是我的'Post'模型: POST MODEL

我有一个名为text的字段,我的视图是这样的: DRAFT VIEW

我在get_queryset()方法中获取并过滤我的帖子对象/字段,然后将其返回到post_draft_list.html,然后获取文本{{post.text}}。文本包含一些HTML标签,我想删除它们。现在,如果我想通过bleach清理文本字段,我该如何在我的视图中执行此操作(get_queryset)?

2 个答案:

答案 0 :(得分:1)

<强>尝试:

import bleach

filtered_text = bleach.clean(data_text, tags=[u'a', u'i', u'li', u'ol', u'ul'])

tags中仅允许您需要的那些标记。

有关详细信息,您可以关注bleach,因为出于安全目的,从 django 1.8 开始折旧removetags过滤器。

答案 1 :(得分:0)

您也可以使用this snippet但是该代码段使用正则表达式来解析HTML,这不是一个好主意。所以我建议像Astik一样提到bleach