动态生成 django 表单

Dynamically generate django forms

我正在尝试动态生成 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 方法我可以使用

您可以在表单的 __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()