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

Posted

技术标签:

【中文标题】我将如何在 Django 模板标签中使用模板上下文变量的值? [复制]【英文标题】:How will I use template context variable's value inside Django template tags? [duplicate] 【发布时间】:2018-06-05 15:19:54 【问题描述】:

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

% trans 'Rishikesh' %

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

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

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

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

% trans "username" %

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

如果你知道有什么方法可以帮助我。

【问题讨论】:

随机加粗是怎么回事? 【参考方案1】:

尝试使用不带引号和大括号的变量,如下所示:

% trans username %

【讨论】:

谢谢@Farrukh。它正在工作。【参考方案2】:

您应该在您的视图中进行翻译

from django.utils.translation import ugettext as _

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

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

 username 

模板翻译只针对静态,不要在模板中加入太多逻辑,过段时间会很难跟上。

【讨论】:

我想用变量值作为trans标签的值。现在我从@Farrukh 的回答中得到了解决方案。我们可以使用 % trans username % 就可以了。

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

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

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

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

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

对于 Django 模板 %url% 标签,我如何从通用视图上下文中找到所有 URL 参数,而不仅仅是最后一个?

使用 Form 标签在 Django 模板中获取模型的名称