Python 3.x 德扬戈。双引号字符串第二次双引号

Python 3.x 德扬戈。双引号字符串第二次双引号,python-3.x,django-templates,Python 3.x,Django Templates,我写了这个简单的标签: @register.simple_tag(name='is_active', takes_context=True) def is_active(context, url_name): if reverse(url_name) == context.request.path: return 'class="active"' return '' 在模板中: <li {% is_active 'home_page' %}>

我写了这个简单的标签:

@register.simple_tag(name='is_active', takes_context=True)
def is_active(context, url_name):
    if reverse(url_name) == context.request.path:
        return 'class="active"'
    return ''
在模板中:

 <li {% is_active 'home_page' %}>

在开发服务器上,其呈现方式如下:

<li class="active">
  • 但在带有UWSGI的生产服务器上,它使用重复的双引号呈现:

    <li class=""active"">
    
  • UPD:Firebug渲染“为”。 实际上它看起来像:

    <li class="&quot;active&quot;">
    
  • 这是django测试服务器中的错误吗?
    如何摆脱这种转换?

    来自django文档

    与其他标记实用程序不同,如果模板上下文处于自动转义模式,simple_标记通过条件_escape()传递其输出,以确保正确的HTML并保护您免受XSS漏洞的攻击

    如果不需要额外转义,如果您完全确定代码不包含XSS漏洞,则需要使用mark_safe()。对于生成小HTML片段,强烈建议使用format_HTML()而不是mark_safe()

    代码:

    这不是django中的错误,这是我的错误。我在django 1.8.7中进行了本地开发,但在服务器上django被更新为1.9.2

    return format_html('class="active"')