3

私はフォームセットを使用しており、生成されたフォームごとに、一意のフォームごとに番号付きのタイトルを表示したいと考えています。したがって、5 つのフォームを生成する場合、フォーム フィールドの前に「フォーム 1」、「フォーム 2」、...「フォーム 5」というテキスト ラベルを表示したいと考えています。

方法:

  1. このようなプレーンな情報テキスト ラベル用のスペースをフォームに作成しますか?
  2. 各フォームのタイトルを設定しますか (テンプレートで想定しています)?

ありがとう!

4

2 に答える 2

4

forloop.counter以下のように、各フォームの前に使用してテンプレートにラベルを付けることができます

<form method="post" action="">
    {{ formset.management_form }}
    <table>
        {% for form in formset %}
        <label> Form - {{forloop.counter}} </label>
        {{ form }}
        {% endfor %}
    </table>
</form>
于 2013-03-07T06:55:49.140 に答える
1

ドキュメントが解決策を提供することに気付きました。にアクセス{{forloop.counter}}して、ユニバーサル レイアウト要素Layoutを使用してラベルを作成できます。HTML

引き続きヘルパーを使用できることに注意してください (この場合、フォームセットの構築に使用されるフォームのヘルパーを使用しています)。ここでの主な違いは、ヘルパー属性がフォーム構造に適用され、レイアウトがフォームセットのフォームに適用されることです。フォームセットをレンダリングすると、レイアウト レンダリングに追加のコンテキストが挿入されるため、次のようなことができます。

HTML("{% if forloop.first %}フォームセット フォーム リストの最初のフォームにのみ表示されるメッセージ{% endif %}", Fieldset("Item {{ forloop.counter }}", 'field-1', [ ...])

于 2013-03-09T12:17:06.960 に答える