Django是否尝试转换模板变量?
我的模板中有以下代码:Django是否尝试转换模板变量?,django,internationalization,django-templates,django-1.6,Django,Internationalization,Django Templates,Django 1.6,我的模板中有以下代码: {% blocktrans %}Hello, {{ user.username }}!{% endblocktrans %} 这在我的网站上显示为: 你好 我确信变量已填充(因为如果我删除blocktrans标记,它将正确显示),所以我的问题是:Django是否也尝试转换变量?我的工作代码是: {% blocktrans with username=user.username %}Hello, {{ username }}!{% endblocktrans %} 但是
{% 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 %}
所以我认为这应该行得通,对吗?是否有一个我没有注意到的明显错误?您可以在
块trans
中使用变量,但无法访问对象属性,因为您正在尝试使用user.username
。您需要将这些绑定到局部变量,如下所示:
编辑:对不起,我刚刚注意到我误读了你的问题,你提到了本地绑定。但这就是你的答案。您在django core中展示的示例使用的是
site\u name
,而不是site.name
。不知道你不能使用属性。在某种程度上,我怀疑这就是问题所在,但不确定。
{% blocktrans with amount=article.price %}
That will cost $ {{ amount }}.
{% endblocktrans %}