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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何在Django模板标签中使用模板上下文变量的值? [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

在Django中,我看过trans标签,将翻译字符串放在模板中很有用。

{% trans 'Rishikesh' %}

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

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

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

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

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

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

如果您知道任何相同的方法,请帮助我。

答案

尝试使用没有引号的变量,没有像这样的大括号:

{% trans username %}
另一答案

您应该在视图中进行翻译

from django.utils.translation import ugettext as _

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

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

{{ username }}

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

以上是关于我如何在Django模板标签中使用模板上下文变量的值? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 中测试自定义模板标签?

django 的模板标签“include”如何与 None 一起使用

如何在 Django 2.1 中的模板内的 for 循环内设置变量?

Django 在模板标签中过滤和计数

Django 如何将自定义变量传递给上下文以在自定义管理模板中使用?

如何在模板标签中获取当前用户?