我的模板中有以下代码:
{% 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 %}
所以我认为这应该有效,对吗?是否有一个明显的错误我没有注意到?
答案 0 :(得分:1)
您可以在blocktrans
块中包含变量,但在尝试使用user.username
时无法访问对象属性。根据{{3}}:
{% blocktrans with amount=article.price %}
That will cost $ {{ amount }}.
{% endblocktrans %}
编辑:抱歉,我刚注意到我误解了您的问题,您确实提到了本地绑定。但那是你的答案。您在django核心中展示的示例使用的是site_name
,而不是site.name
。