【问题标题】:How to use dynamic variable (variable.variable.variable) in jinja2 with django如何在 jinja2 中使用 django 中的动态变量(variable.variable.variable)
【发布时间】:2019-11-04 01:44:03
【问题描述】:

“我想在模板中显示名称而不是 ID。

我将 jinja2 和 django2.2.1 与 python3 一起使用。我想在我的模板中使用动态变量。我有一个 id 和 name 的字典,我想在我的模板视图中显示相关 ID 的名称。

    name_dict = {
    1 : 'name 1'
    2 : 'name 2'
    }

return name_dict

“在我的模板中,我有另一个对象是table_data, 现在在我看来,我想做这样的事”

  table_data = object with another table data

    {% for data in table_data %}

#This does not gives any error but not printing name

        name_dict.data.id  

#It gives an error

        name_dict[data.id] 

    {% endfor %}

“我应该怎么做才能显示'name_dict'中的名字”

提前致谢

【问题讨论】:

  • 你确定使用 Jinja2 而不是 Django 模板语言吗?
  • 是的,这是我的 settings.py 'code' { 'BACKEND': 'django.template.backends.jinja2.Jinja2', 'DIRS': [os.path.join(project_root, ' apps', 'admin', 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'environment': 'apps.admin.jinja2.environment', }, }, 'code'
  • 然后显示你遇到了什么错误。这是 Jinja2 中的有效代码。
  • TemplateSyntaxError at /admin/key_mapping/list 'Could not parse the rest: '[data.id]' from 'name_dict[data.id]''
  • 嗯,正如我所说,这是一个 Django 模板语言错误。所以你没有使用 Jinja2。我不知道该设置在哪里,但它显然没有生效或被覆盖。

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


【解决方案1】:

您可以从您的views.py 内部将dict 键或值或两者发送到您的模板 像这样:

字典 ={ '第一' : 'aa', '第二' : 'bb', }

定义我的视图(请求): 返回渲染(请求,'home.html',字典)

在 home.html 中,您可以像这样使用 dict 数据:(考虑作为 jinja 代码?) {% 如果是第一个 %} {% for string in First %} ...... 请记住,您可以发送一个列表来代替“aa”,例如

【讨论】:

    猜你喜欢
    • 2021-09-01
    • 2012-02-05
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 2019-06-14
    • 2015-10-02
    • 2018-03-19
    • 2015-12-08
    相关资源
    最近更新 更多