【问题标题】:Django - Access list values on templateDjango - 访问模板上的列表值
【发布时间】:2023-03-20 08:19:01
【问题描述】:

我必须访问 Django 模板中 list(array) 中的所有可用值。我在网上找到的所有示例都使用字典。因此,列表正确传递给模板,但以下代码不起作用:

{% for item in array %}
    field_names = field_names + "{{ item }},";
    {% if forloop.last %}
        field_names = field_names + "{{ item }}";
    {% endif %}
{% endfor %}

我可以使用 {{ field.[0] }}{{ field.[1] }} 等访问这些值。但是,我必须让它独立于列表的大小工作。

谁能给我一个提示?

附: - 我不能使用字典将值传递给模板,因为该代码不是我编写的,我不应该触摸它。

【问题讨论】:

  • 这是否包含在 Javascript 块中?你想要的输出是什么?
  • 是的,它包含在 Javascript 块中。我正在自动化构建 jqGrids 的过程,因此变量 field_names 将在 jqGrid 属性中使用。感谢您的关注。
  • 那么列表中有什么?当您将列表直接传递给 JS 时会发生什么?你现在的代码有什么问题?
  • 该列表包含以下信息["value1","value2", "value3"],我想使用该列表构建一个与"value1","value2","value3" 完全相同的字符串。通过上面的 for 循环,我打算这样做。但是在我的调试器上,我可以看到没有任何值传递给变量field_names
  • 但这已经作为 Javascript 的参数完全有效。你为什么要为所有这些代码烦恼?

标签: arrays django list templates


【解决方案1】:

在你看来:

my_joined_list = ",".join(somelist)

在您的模板中:

field_names = {{ my_joined_list }}

【讨论】:

  • 因为我需要用撇号分隔的值,所以我添加了以下代码my_joined_list = "','".join(somelist),但没有用。我注意到它在每个撇号之前添加了两个 //
【解决方案2】:

解决了!!我只是完全按照我的需要将变量传递给模板,并使用{{ array|safe }} 将其解析为 Javascript 变量。完毕!

【讨论】:

    猜你喜欢
    • 2016-02-29
    • 2011-05-03
    • 2015-05-11
    • 2018-09-11
    • 2012-10-19
    • 2018-01-17
    • 2019-04-16
    • 2015-08-18
    • 2022-01-12
    相关资源
    最近更新 更多