动态字段数取决于Djang上另一个字段的值

2024-09-26 17:59:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用字段room创建表单,它是整数字段。根据此字段的值,应创建相同数量的另一个字段adultchildren,根据字段children,应创建相同数量的字段children_age。但当我把children字段留空时,它会出现“所有字段都是必需的” 表单.py你知道吗

class RoomsForm(forms.Form):
        rooms = forms.IntegerField(min_value=1)

class TouristsForm(forms.Form):
        adult = forms.IntegerField(label=(u'Adults'), min_value=1, initial=1, widget = forms.HiddenInput)
        children = forms.IntegerField(label=(u'Children'), min_value=1, required=False, widget = forms.HiddenInput)

class ChildrenAgeForm(forms.Form):
        children_age = forms.IntegerField(min_value=2, max_value=10, required=False, widget = forms.HiddenInput)

你知道吗视图.py你知道吗

def RoomsForm(request):
        TouristsFormSet = formset_factory(TouristsForm)
        ChildrenAgeFormSet = formset_factory(ChildrenAgeForm)
        if request.method == 'POST':
                rooms_form = RoomsForm(request.POST, prefix='rooms_form')
                tourists_formset = TouristsFormSet(request.POST, prefix='tourists')
                childrenage_formset = ChildrenAgeFormSet(request.POST, prefix='childrenage')
                if rooms_form.is_valid() and tourists_formset.is_valid() and childrenage_formset.is_valid():
                        rooms = rooms_form.cleaned_data['rooms']

                        for i in range(0, tourists_formset.total_form_count()):
                                tourists_form = tourists_formset.forms[i]
                                print tourists_form.cleaned_data

我不知道为什么会这样。也许我选择了错误的方式来实现它。希望你能帮我。你知道吗


Tags: formvaluerequestformswidgetminpostclass

热门问题