Django cleaned_数据键错误

Django cleaned_数据键错误,django,django-forms,Django,Django Forms,在我的Django应用程序中,我有三种形式: 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) chi

在我的Django应用程序中,我有三种形式:

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)
在view.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() or 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
但它总是在/rooms/“rooms”处出现错误keyrerror。
有人能帮我一下吗?

在这一行中,您使用的是
而不是
,因此您不能保证
表格
有效

if rooms_form.is_valid() and tourists_formset.is_valid() or childrenage_formset.is_valid():

rooms\u表单
无效时,
rooms
不在
rooms\u表单中。已清理的\u数据
,因此您在此行中获得
键错误
,您使用的是
而不是
,因此您不能保证
rooms\u表单
有效

if rooms_form.is_valid() and tourists_formset.is_valid() or childrenage_formset.is_valid():

rooms\u表单
无效时,
rooms
不在
rooms\u表单中。已清理的\u数据
,因此您会得到
键错误

如果
逻辑意味着是
,您的
的最后一部分是什么?在我看来,这需要是一个
。如果
逻辑意味着是一个
,那么这是你的
的最后一部分吗?在我看来,这需要是一个
。谢谢你的回答,但是当我使用
而不是
时,我有另一个错误,也许你可以帮我解决。因此,应该出现
children\u age
字段,请用更多详细信息更新您的问题。我不清楚你的意思。很抱歉我之前的评论,我的孩子按了回车键。当我使用
而不是
时,我有另一个问题。也许你能帮我。所以我的情况是:我想用field
room
创建表单,它是整数字段。根据此字段的值,应创建相同数量的其他字段
成人
儿童
,根据字段
儿童
,应创建相同数量的字段
儿童(年龄
)。但当我把
子项
数字留空时,会出现“所有必填字段”。希望你能理解我的问题,那是一个完全不同的问题。您应该编辑上面的问题,或者最好问一个新问题,以便引起更多的注意。谢谢您的回答,但是当我使用
而不是
时,我有另一个错误,也许您可以帮我解决。因此,应该出现
children\u age
字段,请用更多详细信息更新您的问题。我不清楚你的意思。很抱歉我之前的评论,我的孩子按了回车键。当我使用
而不是
时,我有另一个问题。也许你能帮我。所以我的情况是:我想用field
room
创建表单,它是整数字段。根据此字段的值,应创建相同数量的其他字段
成人
儿童
,根据字段
儿童
,应创建相同数量的字段
儿童(年龄
)。但当我把
子项
数字留空时,会出现“所有必填字段”。希望你能理解我的问题,那是一个完全不同的问题。你应该编辑上面的问题,或者最好问一个新问题,这样它会得到更多的关注。