Django 似乎转义 HTML 个字符(但不应该)

Django seems to escape HTML characters (but is not supposed to)

在将 Django 从 1.8 升级到 1.9.8 之后(并在此过程中升级了一堆模块),我在模板中的翻译遇到了问题。

Foobar 键关联的 foo<br>bar 字符串,代码:

<p>{% i18n 'Foobar' %}</p>

升级前运行良好,显示:

foo
bar

但是现在,它显示:

foo<br>bar

有什么想法吗?

好的,感谢 Bestasttung 的评论,我用这个解决了我的问题:

{% autoescape off %}
<p>{% i18n 'Foobar' %}</p>
{% endautoescape %}

但这不是很令人满意,因为我有多个模板要更新。 所以,我只是改变了我的 i18n 方法:

def i18n(context, key):
    ...
    return s

至:

def i18n(context, key):
    ...
    return mark_safe(s)

希望对遇到同样问题的人有所帮助。