私は動的にPythonクラスを生成しようとしています。ここでは、django形式です。動的にdjangoフォームを生成する
class BankForm(forms.Form):
name = forms.CharField()
for i in range(10):
setattr(BankForm, 'contact_' + str(i), forms.CharField())
ただし、フォームを使用するときは、name
フィールドのみが表示されます。どのようにそれを行うにはどのようなアドバイスですか?
EDIT約modelform_factory
を発見、それは一つの解決策
EDIT2だようになっています。さらに良いことに、私はあなたのように、フォームの__init__
方法でフィールドを追加することができます
おそらく、あなたが 'BankForm'ではなく' MyForm'に属性を設定しているからです。しかし、たぶんタイプミスでしょうか? – marcusshep
oops、edited、no、未定義の変数例外が発生しました – damio
'modelform_factory'メソッドはモデルフォームを作成するのに便利ですが、通常のフォームにフィールドを追加する場合にはあまり適していません。 add_fields'メソッドはフォームではなく* formsets *のためのものです。 – Alasdair