Python 在Django中返回我自己的模板标记时自动添加斜杠
我是一名NoobDjango程序员,我想为django模板创建自己的模板标记。我已经创建了一个templatetags模块,当我使用显示的代码时,它似乎工作正常;但是,我的函数返回一个字符串,其中包含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
“
和”
,而不是”
(好像函数的结果会被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 "<text>" 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
除值错误外:
返回值
除:
返回值