动态生成django表单

时间:2016-08-10 15:11:16

标签: python django django-forms metaprogramming

我正在尝试动态生成python类。这里是一个django形式。

class BankForm(forms.Form):
    name = forms.CharField()

for i in range(10):
    setattr(BankForm, 'contact_' + str(i), forms.CharField())

但是在使用表单时,只显示name字段。关于如何做的任何建议?

编辑:找到关于modelform_factory,看起来像是一个解决方案

EDIT2:更好的是,看起来我可以使用add_fields方法

1 个答案:

答案 0 :(得分:4)

您可以在表单__init__方法中添加字段,如下所示:

class BankForm(forms.Form):
    name = forms.CharField()

    def __init__(self, *args, **kwargs):
        super(BankForm, self).__init__(*args, **kwargs)
        for i in range(10):
            self.fields['contact_' + str(i)] = forms.CharField()