如何在Django中解析包含“trans”标签的字符串作为模板?
我正在尝试从一个字符串创建一个动态模板(我知道,动态模板这个说法有点矛盾),但我在使用 {% trans %}
标签时遇到了问题。如果这个字符串包含:
{% trans %}Hello{% endtrans %}
那么当我这样做的时候:
context = RequestContext(request, data)
template = Template(text)
out_text = template.render(context)
我就会遇到一个内部服务器错误。我试过在字符串中添加 {% load i18n %}
,但这并没有帮助。我需要做些什么才能让这个字符串可以翻译呢?在html文件中一切正常,但我就是无法让它在字符串中工作。如果我把 trans
标签去掉,模板字符串就能正常解析。
1 个回答
0
你确定这个模板是由Jinja加载和解析的,而不是Django吗?
我在我的Django项目中通过Coffin使用Jinja2,每次当模板没有通过Coffin加载时,都会出现错误。
检查一下哪个加载器首先找到了这个模板。是Coffin/Jinja的加载器,还是Django的加载器?如果是Django找到了这个模板,那么它就会由Django来解析,而Django不知道怎么处理{% trans %}{% endtrans %}这个块。