2

次のテンプレート コードがあります。現在、フォームセットのラベルとしてループ カウンターを取得しています。配列 'month' の要素 (たとえば、counter がループの 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 に答える