Django
Formsets
サーチ…
構文
- NewFormSet = formset_factory(SomeForm、extra = 2)
- formset = NewFormSet(initial = [{'some_field': 'フィールド値'、 'other_field': 'その他のフィールド値'、}])
初期化され、ユニット化されたデータを持つFormset
Formset
は、データグリッドのように、1ページに複数のフォームをレンダリングする方法です。例:このChoiceForm
は、sortの質問に関連付けられている可能性があります。子供は、どの年齢の間で最も知的ですか?
appname/forms.py
from django import forms
class ChoiceForm(forms.Form):
choice = forms.CharField()
pub_date = forms.DateField()
あなたの意見では、使用することができますformset_factory
取る取るコンストラクタForm
パラメータにそのようChoiceForm
この場合とextra
初期化フォーム/フォーム以外の余分なフォームをレンダリングする必要があり、あなたはをループすることができますどのように多くの説明formset
ただのようなオブジェクトをその他の反復可能。
フォームセットがデータで初期化されていない場合には、に等しい多数の形態印刷extra + 1
し、フォームセットが初期化されている場合には、プリントinitialized + extra
場合extra
初期化以外の空のフォームの数。
appname/views.py
import datetime
from django.forms import formset_factory
from appname.forms import ChoiceForm
ChoiceFormSet = formset_factory(ChoiceForm, extra=2)
formset = ChoiceFormSet(initial=[
{'choice': 'Between 5-15 ?',
'pub_date': datetime.date.today(),}
])
formset:print(form.as_table())のようにformset object
をこのようにループすると、
Output in rendered template
<tr>
<th><label for="id_form-0-choice">Choice:</label></th>
<td><input type="text" name="form-0-choice" value="Between 5-15 ?" id="id_form-0-choice" /></td>
</tr>
<tr>
<th><label for="id_form-0-pub_date">Pub date:</label></th>
<td><input type="text" name="form-0-pub_date" value="2008-05-12" id="id_form-0-pub_date" /></td>
</tr>
<tr>
<th><label for="id_form-1-choice">Choice:</label></th>
<td><input type="text" name="form-1-choice" id="id_form-1-choice" /></td>
</tr>
<tr>
<th><label for="id_form-1-pub_date">Pub date:</label></th>
<td><input type="text" name="form-1-pub_date" id="id_form-1-pub_date" /></td
</tr>
<tr>
<th><label for="id_form-2-choice">Choice:</label></th>
<td><input type="text" name="form-2-choice" id="id_form-2-choice" /></td>
</tr>
<tr>
<th><label for="id_form-2-pub_date">Pub date:</label></th>
<td><input type="text" name="form-2-pub_date" id="id_form-2-pub_date" /></td>
</tr>
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow