Python 在Django中返回我自己的模板标记时自动添加斜杠

Python 在Django中返回我自己的模板标记时自动添加斜杠,python,django,django-templates,template-engine,Python,Django,Django Templates,Template Engine,我是一名NoobDjango程序员,我想为django模板创建自己的模板标记。我已经创建了一个templatetags模块,当我使用显示的代码时,它似乎工作正常;但是,我的函数返回一个字符串,其中包含“和”,而不是”(好像函数的结果会被addslashes()函数修改一样)。我的代码怎么了 base\u template.html(使用我的模板标签的django模板) <% load templatetags %> <html> <head> </h

我是一名NoobDjango程序员,我想为django模板创建自己的模板标记。我已经创建了一个templatetags模块,当我使用显示的代码时,它似乎工作正常;但是,我的函数返回一个字符串,其中包含
,而不是
(好像函数的结果会被
addslashes()
函数修改一样)。我的代码怎么了

base\u template.html(使用我的模板标签的django模板)

<% load templatetags %>
<html>
 <head>
 </head>
 <body>
   {# text contains a string #}
   {{ text | formattedtext }}
 </body>
</html>

{#文本包含字符串#}
{{text | formattedtext}}
templatetags.py

from django import template

register = template.Library()
@register.filter(name='formattedtext')

def formattedtext(value):
    try:
        scoringTemplate = "<b>" + value + "</b>"
        print scoringTemplate #return string with "<b>text</b>"
        return scoringTemplate #however, this returns string with "&lt;text&gt;" value :(
    except ValueError:
        return value
    except:
        return value
来自django导入模板的

register=template.Library()
@register.filter(name='formattedtext')
def格式化文本(值):
尝试:
scoringTemplate=”“+值+“”
打印scoringTemplate#返回带“text”的字符串
return scoringTemplate#但是,它返回带有“text”值的字符串:(
除值错误外:
返回值
除:
返回值

您需要将输出标记为“安全”:

因此,您的代码应该是:

from django import template
from django.utils.safestring import mark_safe

register = template.Library()
@register.filter(name='formattedtext')

def formattedtext(value):
    try:
        scoringTemplate = "<b>" + value + "</b>"
        print scoringTemplate #return string with "<b>text</b>"
        return mark_safe(scoringTemplate)   # unescaped, raw html
    except ValueError:
        return value
    except:
        return value
来自django导入模板的

从django.utils.safestring导入标记_safe
register=template.Library()
@register.filter(name='formattedtext')
def格式化文本(值):
尝试:
scoringTemplate=”“+值+“”
打印scoringTemplate#返回带“text”的字符串
返回mark_safe(scoringTemplate)#未扫描的原始html
除值错误外:
返回值
除:
返回值