【问题标题】:Reading a list inside a tuple in Django在 Django 中读取元组内的列表
【发布时间】:2015-04-21 22:12:15
【问题描述】:

我的问题是我想读取一个列表(带有 for 循环),它位于这样的元组中:

items = {a, b, [1, 2, 3]}

'a' 和 'b' 是我需要的其他数据。

现在为了阅读列表,我这样做了,但不起作用:

{% for item in items.3 %}
  {{item}}
{% endfor %}

所以我的问题是如何使用 for 循环读取元组内的列表?

感谢您的帮助。

【问题讨论】:

  • 我删除了erlang标签,因为没有引用Erlang编程语言。

标签: django


【解决方案1】:

我刚刚删除了部分代码并重新开始。 额外提示:如果元组中的列表是元组列表,并且您想读取元组的一部分。您必须使用新的 for 循环来读取它。

例如,我有这个:

items = {a, b, [{1, 2, 3}, {4, 5, 6}]}

现在从元组中获取列表:

{% for item in items.3 %}
    {{item}}
{% endfor %}

现在从列表中的元组中获取一些东西

我尝试这样做但它不起作用,如果有人知道如何解决这个问题,请添加评论:

{% for item in items %}
    {{item.1}}
{% endfor %}

这是我完成它的诀窍:

{% for item in items %}
    {% for i in item %}
        {{i}}
    {% endfor %}
{% endfor %}

要获取最外层循环的计数器,请查看此帖子: how-to-access-outermost-forloop-counter-with-nested-for-loops-in-django-template

谢谢

【讨论】:

    【解决方案2】:

    列表/元组中的 Python 索引从零开始。所以你应该使用索引2:

    {% for item in items.2 %}
      {{ item }}
    {% endfor %}
    

    顺便说一句,元组是用圆括号定义的,而不是花括号:

    items = (a, b, [1, 2, 3])
    

    【讨论】:

    • 它没有用。如果我输入 {{items.0}},我会收到错误。即使在 django 中,我也会得到大括号。我想是因为我在底层代码中使用 Erlang。
    • python 中的花括号是定义set 的快捷方式。 Python 集没有被索引,所以{1, 2, 3}[0] 会引发错误。当然,元组 (1, 2, 3)[0] 可以正常工作。
    • 我破案了。但我不知道问题是什么。我删除了那部分代码的所有内容并重新开始。现在它工作正常。感谢您的帮助。
    猜你喜欢
    • 2015-04-13
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多