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)
希望对遇到同样问题的人有所帮助。
在将 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)
希望对遇到同样问题的人有所帮助。