私はフォームセットを使用しており、生成されたフォームごとに、一意のフォームごとに番号付きのタイトルを表示したいと考えています。したがって、5 つのフォームを生成する場合、フォーム フィールドの前に「フォーム 1」、「フォーム 2」、...「フォーム 5」というテキスト ラベルを表示したいと考えています。
方法:
- このようなプレーンな情報テキスト ラベル用のスペースをフォームに作成しますか?
- 各フォームのタイトルを設定しますか (テンプレートで想定しています)?
ありがとう!
私はフォームセットを使用しており、生成されたフォームごとに、一意のフォームごとに番号付きのタイトルを表示したいと考えています。したがって、5 つのフォームを生成する場合、フォーム フィールドの前に「フォーム 1」、「フォーム 2」、...「フォーム 5」というテキスト ラベルを表示したいと考えています。
方法:
ありがとう!
forloop.counter
以下のように、各フォームの前に使用してテンプレートにラベルを付けることができます
<form method="post" action="">
{{ formset.management_form }}
<table>
{% for form in formset %}
<label> Form - {{forloop.counter}} </label>
{{ form }}
{% endfor %}
</table>
</form>
ドキュメントが解決策を提供することに気付きました。にアクセス{{forloop.counter}}
して、ユニバーサル レイアウト要素Layout
を使用してラベルを作成できます。HTML
引き続きヘルパーを使用できることに注意してください (この場合、フォームセットの構築に使用されるフォームのヘルパーを使用しています)。ここでの主な違いは、ヘルパー属性がフォーム構造に適用され、レイアウトがフォームセットのフォームに適用されることです。フォームセットをレンダリングすると、レイアウト レンダリングに追加のコンテキストが挿入されるため、次のようなことができます。
HTML("{% if forloop.first %}フォームセット フォーム リストの最初のフォームにのみ表示されるメッセージ{% endif %}", Fieldset("Item {{ forloop.counter }}", 'field-1', [ ...])