두 개의 라디오 버튼 (Male/Female)이있는 양식을 만들었습니다. 아래에는 이름 및 성 입력란이 있습니다. 양식을 복제하기 위해 formset을 사용하면 모든 입력 상자에 대한 라디오 버튼이 포함되며이를 제외하고 싶습니다. 사용자가 "남성"을 선택하면 이름이 성별 선택과 일치해야한다고 가정합니다. 그래서 같이한다Django Formset 사용자 정의 필드 제외
출력 :
O 남성 O 여성
이름 : _______________ 성 : _______________
이름 : _______________ 성 : _______________
...
forms.py
from django import forms
class NameForm (forms.Form):
GENDER = (
('Male', 'Male'),
('Female', 'Female')
)
gender = forms.ChoiceField (widget = forms.RadioSelect, choices = GENDER)
first_name = forms.CharField (max_length = 20)
last_name = forms.CharField (max_length = 20)
Shell Output:
>>> from django.forms.formsets import formset_factory
>>> from nameform.forms import NameForm
>>>
>>> NameFormSet = formset_factory (NameForm, extra = 2)
>>> formset = NameFormSet()
>>> for form in formset:
... print (form.as_table())
...
<tr><th><label for="id_form-0-gender_0">Gender:</label></th><td><ul id="id_form-0-gender">
<li><label for="id_form-0-gender_0"><input id="id_form-0-gender_0" name="form-0-gender" type="radio" value="Male" /> Male</label></li>
<li><label for="id_form-0-gender_1"><input id="id_form-0-gender_1" name="form-0-gender" type="radio" value="Female" /> Female</label></li>
</ul></td></tr>
<tr><th><label for="id_form-0-first_name">First name:</label></th><td><input id="id_form-0-first_name" maxlength="20" name="form-0-first_name" type="text" /></td></tr>
<tr><th><label for="id_form-0-last_name">Last name:</label></th><td><input id="id_form-0-last_name" maxlength="20" name="form-0-last_name" type="text" /></td></tr>
<tr><th><label for="id_form-1-gender_0">Gender:</label></th><td><ul id="id_form-1-gender">
<li><label for="id_form-1-gender_0"><input id="id_form-1-gender_0" name="form-1-gender" type="radio" value="Male" /> Male</label></li>
<li><label for="id_form-1-gender_1"><input id="id_form-1-gender_1" name="form-1-gender" type="radio" value="Female" /> Female</label></li>
</ul></td></tr>
<tr><th><label for="id_form-1-first_name">First name:</label></th><td><input id="id_form-1-first_name" maxlength="20" name="form-1-first_name" type="text" /></td></tr>
<tr><th><label for="id_form-1-last_name">Last name:</label></th><td><input id="id_form-1-last_name" maxlength="20" name="form-1-last_name" type="text" /></td></tr>
좋은 지적. 나는 그 가능성을 간과했다. 고맙습니다! – dreamzboy