2

我有以下模板代码,目前我正在获取循环计数器作为我的表单集的标签。我怎样才能得到数组'月'的元素(例如month.counter,其中计数器是循环)作为我的标签?我试过 {{month.forloop.counter}} 但没有奏效

<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>
4

2 回答 2

1

您可以使用自定义模板标签来做到这一点。示例代码如下:

将以下内容添加到 /{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 %}

............
............

查看此链接,有人也尝试了不同的方法来做到这一点;虽然他们都没有工作。;)

于 2012-07-04T06:06:35.230 回答
0

django 模板中没有现成的过滤器/标签。您可以尝试编写自定义过滤器/标签。请参阅自定义模板标签和过滤器

于 2012-07-04T05:47:28.227 回答