动态生成django表单

dam*_*mio 1 python django metaprogramming django-forms

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

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

for i in range(10):
    setattr(BankForm, 'contact_' + str(i), forms.CharField())
Run Code Online (Sandbox Code Playgroud)

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

编辑:发现了modelform_factory,看起来是一种解决方案

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

Ala*_*air 5

您可以在表单的__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()
Run Code Online (Sandbox Code Playgroud)