Как я буду использовать значение переменной контекста шаблона внутри тегов шаблона Django?

В Django я видел тег trans, удобно размещать строки перевода в шаблонах.

{% trans 'Rishikesh' %}

Но я хочу использовать динамическое значение вместо 'Rishikesh', которое передается моей функцией просмотра.

Предположим, что моя функция просмотра с именем index выглядит следующим образом.

def index(request):
    return render(request, "index.html", {"username": "Rishikesh"})

Мой вопрос: я хочу использовать значение username в качестве значения тега trans в моем шаблоне примерно так:

{% trans "{{username}}" %}

Я думаю, это должно работать, но это не работает?

Пожалуйста, помогите мне, если вы знаете, как сделать то же самое.


person hygull    schedule 23.12.2017    source источник
comment
Что со случайным жирным шрифтом?   -  person internet_user    schedule 23.12.2017


Ответы (2)


Попробуйте использовать переменные без кавычек и без фигурных скобок, например:

{% trans username %}
person Farrukh    schedule 23.12.2017
comment
Спасибо @Фаррух. Это работает. - person hygull; 23.12.2017

Вы должны делать перевод в вашем представлении

from django.utils.translation import ugettext as _

def index(request):
    return render(request, "index.html", {"username": _("Rishikesh")})

И в вашем шаблоне просто переменная рендеринга:

{{ username }}

Переводы шаблонов предназначены только для статики, не добавляйте слишком много логики в шаблоны, через какое-то время за ними будет трудно следить.

person vishes_shell    schedule 23.12.2017
comment
Я хочу использовать значение переменной в качестве значения транс-тега. Теперь я получил решение из ответа @Farrukh. Мы можем использовать {% trans username %}, и это работает. - person hygull; 23.12.2017