如何在模板Django中使用for循环将数组元素用作标签?
我有下面的模板代码,目前我正在获取for循环计数器作为我的表单集的标签。如何获取数组“month”(例如month.counter,其中counter是循环)的元素作为标签??我尝试了{{month.forloop.counter}},但没有成功如何在模板Django中使用for循环将数组元素用作标签?,django,templates,for-loop,label,formset,Django,Templates,For Loop,Label,Formset,我有下面的模板代码,目前我正在获取for循环计数器作为我的表单集的标签。如何获取数组“month”(例如month.counter,其中counter是循环)的元素作为标签??我尝试了{{month.forloop.counter}},但没有成功 <html> <head> <title>Actuals</title> </head> <body> <h1>Actuals Data</h1>
<html>
<head>
<title>Actuals</title>
</head>
<body>
<h1>Actuals Data</h1>
<h2>Your Account Number is : {{ Account_Number }}</h2>
<h2>You Chose {{ Year }} {{month}} as period.</h2>
{% if form.errors %}
<p style="color: red;">
Please correct the error{{ form.errors|pluralize }}below.</p>
{% endif %}
<form action="." >
{{ formset.management_form }}
<table>
{% for form in formset %}
{{form.id}}
<div class="field">
{{ form.Value.errors }}
<label for="id_Value">{{months}}.{{forloop.counter}}</label>
{{ form.Value }}
</div>
{% endfor %}
</table>
</form>
</body>
</html>
现货
实际数据
您的帐号是:{{Account_Number}}
您选择{{Year}{{month}}作为期间。
{%if form.errors%}
请更正下面的错误{form.errors | pluralize}}
{%endif%}
{{formset.management_form}
{formset%中表单的%s}
{{form.id}
{{form.Value.errors}
{{months}}.{{forloop.counter}
{{form.Value}}
{%endfor%}
django模板中没有现成的过滤器/标记。
您可以尝试编写自定义筛选器/标记。请参阅您可以使用自定义templatetags执行此操作。示例代码如下所示: 将以下内容添加到/{app_name}/templatetags/app_tags.py
from django import template
register = template.Library()
@register.filter
def month(value, counter):
try:
month = value[counter]
except IndexError:
month = ""
return month
在模板中放入以下内容
{% load app_tags %}
............
............
{% for form in formset %}
{{form.id}}
<div class="field">
{{ form.Value.errors }}
<label for="id_Value">{{ months|counter:forloop.counter }}</label>
{{ form.Value }}
</div>
{% endfor %}
............
............
{%load app_tags%}
............
............
{formset%中表单的%s}
{{form.id}
{{form.Value.errors}
{{months}计数器:forloop.counter}
{{form.Value}}
{%endfor%}
............
............
也有人尝试过不同的方法,;虽然他们都不工作 感谢您的帮助…jst您的代码中有一个小错误,在模板中应该是
{months | month:forloop.counter0}