Я хочу создать форму с полем «комнаты», это целое поле. В зависимости от количества комнат я хочу создать еще два поля для каждой комнаты «extra_adult» и «extra_children». И в зависимости от числа детей я хочу генерировать поля «children_age».Генерация полей динамической формы Django
Я новичок в Python и Django, и я пытался сделать, как на DYNAMIC FORM GENERATION пост и как here, но я застрял с несколькими вопрос:
1) У меня есть ошибка global name 'rooms' is not defined
в forms.py;
2) как следует i до cleaned_data
для extra_adult
, extra_children
, extra_children_age
поля;
3) в зависимости от количества детей, как добавить поля extra_children_age.
Вот мой form.py
class RoomsForm(forms.Form):
rooms = forms.IntegerField(label=(min_value=1)
def __init__(self, *args, **kwargs):
extra_adult = kwargs.pop('extra_adult', 0)
extra_children = kwargs.pop('extra_children', 0)
super(HotelForm, self).__init__(*args, **kwargs)
for room in rooms:
self.fields['adult_%s' % room] = forms.IntegerField(min_value=1)
self.fields['children_%s' % room] = forms.IntegerField(label=(required=False)
views.py
def bookingForm(request):
if request.method == 'POST':
form = HotelForm(request.POST, extra_a=request.POST.get('extra_adult'), extra_c=request.POST.get('extra_children'))
if form.is_valid():
rooms = form.cleaned_data['rooms']
print "form is valid"
else:
form = HotelForm()
return render(request, 'booking/booking.html', { 'form': form })
Спасибо за вашу помощь.