Django会尝试翻译模板变量吗?

时间:2014-09-24 13:18:09

标签: django internationalization django-templates django-1.6

我的模板中有以下代码:

{% blocktrans %}Hello, {{ user.username }}!{% endblocktrans %}

这在我的网站上显示为:

  

你好,!

我确信变量已填充(因为如果我删除blocktrans标记它会正确显示),所以我的问题是:Django是否也尝试翻译变量?我的工作代码是:

{% blocktrans with username=user.username %}Hello, {{ username }}!{% endblocktrans %}

但是,在Django核心中,在其中一个模板中,有以下代码:

{% blocktrans %}You're receiving this email because you requested a password reset for your user account at {{ site_name }}.{% endblocktrans %}

所以我认为这应该有效,对吗?是否有一个明显的错误我没有注意到?

1 个答案:

答案 0 :(得分:1)

您可以在blocktrans块中包含变量,但在尝试使用user.username时无法访问对象属性。根据{{​​3}}:

,您需要将它们绑定到局部变量
{% blocktrans with amount=article.price %}
That will cost $ {{ amount }}.
{% endblocktrans %}

编辑:抱歉,我刚注意到我误解了您的问题,您确实提到了本地绑定。但那是你的答案。您在django核心中展示的示例使用的是site_name,而不是site.name