1

我正在编写一个自定义过滤器,<strong>如果这个或多个字符包含在给定的文本中,它应该突出显示一个或多个字符。

这是我的自定义过滤器:

@register.filter(needs_autoescape=True)
def highlight(text, sterm, autoescape=None):
   if autoescape:
       esc = conditional_escape
   else:
       esc = lambda x: x
   result = text.replace(esc(sterm),'<strong>'+esc(sterm)+'</strong>')
   return mark_safe(result)

在模板中我{% load %}以这种方式编辑和使用:

{{search_result_text|highlight:searchterm}}

问题是它突出显示匹配项之后的所有文本:

在此处输入图像描述

如您所见,第一个区块就是现在正在发生的事情。我想实现第二块。我搜索过level

我的代码有什么问题?

编辑:对不起,这是我的错字。我没有正确关闭<strong>,现在它就像一个魅力!:)。我把它留在这里,以便其他人可以使用它。

4

1 回答 1

2

这是我的错字:我<strong>没有在我的过滤器功能内正确关闭。

现在它就像一个魅力!

于 2014-05-13T15:11:00.610 回答