gpt4 book ai didi

Django 模板 : using forloop. 计数器作为列表的索引

转载 作者:行者123 更新时间:2023-12-03 08:20:40 24 4
gpt4 key购买 nike

在 django 模板中,我需要使用 forloop.counter0 来访问列表中的元素。例如:

{% for foo in bar %}
<p>{{data[{{forloop.counter0}}]}}</p>

{%endfor%}

该表示法不起作用 - 我猜“无法解析其余部分:[{{forloop.....]”

那么...我如何使用变量 forloop.counter0 作为另一个变量(数据)的索引,该变量是 django 模板中的列表?

编辑:为什么我认为我需要这样做......简短的故事是我有一个内联表单集。表单集(我们称之为“折扣”)很简单 - 描述(只是向用户显示的标签)和关联的折扣百分比。用户只需输入%即可。该表单集在客户表单中使用。使用 inlineformset_factory(客户,折扣,......)。还必须在该折扣表单中设置 2 个外键(对于正在创建的 Customer 实例,以及 MetaGroup,请参见下文)。但这些都是隐藏字段,而且很容易做到。

但是,该表单集中所需的表单数量由另一个表中的实例决定(我们将其称为“MetaGroup”)。例如。元组包含诸如椅子、 table 、沙发之类的条目。我的“折扣”内联表单集为用户提供了一种在每个元组上设置折扣百分比的方法。

因此在模板中我这样做:

...

<tbody>
<managmeent forms, error stuff here>
{% for form in formset %}
<td>{{form.field.pourcent}}</td>


这是我需要访问数据的 forloop[fooloop.counter0]。数据是由我用来呈现该表/片段的包含提供的......

编辑:接受的答案是狭隘问题的解决方案 - 我可能不应该这样做。对于更广泛的问题(例如,为什么我认为我需要这样做),我最终使用了 detailed here 。 .

最佳答案

不要。 Django 模板故意受到限制,这样做,因为业务逻辑属于 View ,而不是模板。

在 View 中,您可以压缩 bardata,因此 View 如下所示:

def my_view(request):
bar = …
data = …
context = {
'bar_data': <b>zip(bar, data)</b>
}
return render(request, <i>'some-template.html'</i>, context)

并渲染它:

{% for <b>foo, datum</b> in bar_data %}
<p>{{ datum }}</p>
{%endfor%}

关于Django 模板 : using forloop. 计数器作为列表的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67961063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com