0

У меня есть следующий код в моем шаблоне:Выполняет ли Django перевод переменных шаблона?

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

Это на моем сайте появляется как:

Здравствуйте,!

Я уверен, что переменная заполняется (поскольку он показывает, правильно ли я удалить blocktrans тег), поэтому мой вопрос: это Джанго попытка перевести переменные тоже? Рабочий код для меня:

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

Однако, в ядре Джанго, в одном из шаблонов, есть этот код:

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

Так что я думаю, что это должно работать, не так ли? Есть явная ошибка, которую я не замечаю?

ответ

1

Вы можете иметь переменные в блоках blocktrans, но вы не можете получить доступ к атрибутам объекта, поскольку вы пытаетесь использовать user.username. Вы должны связать те локальные переменные, согласно the documentation:

{% blocktrans with amount=article.price %} 
That will cost $ {{ amount }}. 
{% endblocktrans %} 

EDIT: К сожалению, я только заметил, что я неправильно понял ваш вопрос, вы уже местный вяжущим. Но тогда это ваш ответ. Пример, который вы показываете из ядра django, использует site_name, а не site.name.

+0

Я вижу. Не знал, что вы не можете использовать свойства. В какой-то момент я подозревал, что это проблема, но не был уверен. –

Смежные вопросы