有什么方法可以知道我在 django 模板中迭代字典时何时传递了最后一项?

问题描述 投票:0回答:1

我正在尝试创建 JSONField 的文本表示形式,其中包含一些结构为字典数组的数据,如下所示:

[
 {
  "key1":"value1",
  "key2":"value2"
 },
 {
  "key3":"value3",
  "key4":"value4",
  "key5":"value5"
 }
]

我的目标是在 Django 模板中表示这些数据,如下所示:

( key1=value1 & key2=value2 ) || ( key3=value3 & key4=value4 & key5=value5 )

现在我将遍历数组,看看是否没有命中最后一个字典,这样我就可以在条件表示文本之间添加 ||,因为它已经是一个数组列表,例如:

{% for dict in data %}
 // Do stuff with dict
 {% if data|last != dict %}
  ||
 {% endif %}
{% endfor %}

但是,由于字典没有 last 的东西,所以当我对每个字典对象执行操作时,当我必须附加一个时,我很难迭代“键,值” “&”仅当我没有到达该字典项目的末尾时。

{% for k,v in dict %}
 k=v
 // append "&" if this is not the last key being iterated?
{% endfor %}

任何建议/解决方法/想法将不胜感激:)

python django dictionary django-templates iteration
1个回答
0
投票

刚刚找到了!愚蠢的我,似乎 Django 已经为模板提供了一个非常简洁的内置 forloop 对象,它的工作方式就像一个魅力!

将其放在此处,以供可能遇到相同问题的任何人

{% for k,v in dict %}
 k=v
 {% if forloop.last != True %}
 &
 {% endif %}
{% endfor %}
© www.soinside.com 2019 - 2024. All rights reserved.