动态表单返回KeyError

时间:2014-02-27 13:43:03

标签: django django-forms dynamic-forms

所以我使用表单模板设置了here

的动态选择

因此我得到了

   *forms.py*
   class selectForm2(forms.Form):
       def __init__(self, *args, **kwargs):
           choices = kwargs.pop('my_choices')
           super(selectForm2, self).__init__(*args, **kwargs)
           self.fields["select_fields"] = forms.ChoiceField(choices=choices)

在我的观点中我有

form = selectForm2(my_choices = models())

其中models()创建元组,每个元组都有一个模型名称和一个模型表:

def models():
    apps = get_app('Directories')
    for model in get_models(apps):
        model_classes.append( (model._meta.verbose_name, model._meta.db_table), )
    return model_classes

但是当我运行它时,my_choices会在choices = kwargs.pop('my_choices')

返回KeyError

1 个答案:

答案 0 :(得分:3)

通常在视图中,您将表单实例化两次,一次用于GET,一次用于POST。您需要记住在两个瞬发中都传递choices