如何在Django中解析包含“trans”标签的字符串作为模板?

1 投票
1 回答
978 浏览
提问于 2025-04-16 22:11

我正在尝试从一个字符串创建一个动态模板(我知道,动态模板这个说法有点矛盾),但我在使用 {% 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 %}这个块。

撰写回答