我如何在Django模板标签中使用模板上下文变量的值?

时间:2017-12-23 07:00:20

标签: python django python-3.x django-templates django-2.0

在Django中,我看到了trans标记,将翻译字符串放在模板中非常有用。

{% trans 'Rishikesh' %}

但我想使用动态值代替我的视图函数传递的'Rishikesh'

假设我的名为index的视图函数如下所示。

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

我的问题是,我希望在我的模板中使用username的值作为trans标记的值,如下所示。

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

我认为,它应该有用,但它不起作用?

如果你知道如何做同样的事,请帮助我。

2 个答案:

答案 0 :(得分:1)

尝试使用没有引号且没有大括号的变量:

OpenDesktop(
  _In_ LPTSTR      lpszDesktop,
  _In_ DWORD       dwFlags,
  _In_ BOOL        fInherit,
  _In_ ACCESS_MASK dwDesiredAccess
)

答案 1 :(得分:1)

您应该在视图中进行翻译

from django.utils.translation import ugettext as _

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

在你的模板中只渲染变量:

{{ username }}

模板翻译仅用于静态,不要在模板中放置太多逻辑,很难在一段时间内完成。