Ich versuche, Python-Klassen dynamisch zu generieren. Hier eine Django-Form.Dynamisch generieren django Formen
class BankForm(forms.Form):
name = forms.CharField()
for i in range(10):
setattr(BankForm, 'contact_' + str(i), forms.CharField())
Aber wenn Sie das Formular verwenden, wird nur das name
Feld auftaucht. Irgendwelche Tipps, wie es geht?
EDIT: Fand heraus über modelform_factory
, sieht aus wie es eine Lösung
EDIT2: Noch besser, sieht aus wie eine add_fields
ist Methode, die ich
wahrscheinlich, weil Sie Attribute auf 'MyForm' und nicht' BankForm' setzen. Aber vielleicht nur ein Tippfehler? – marcusshep
oops, bearbeitet, nein, es hätte eine undefinierte Variablenausnahme ausgelöst – damio
Die 'modelform_factory' Methode ist nützlich für das Erstellen von Modellformularen, aber nicht wirklich geeignet für diesen Fall, in dem Sie Felder zu einem regulären Formular hinzufügen möchten. Die Methode add_fields' ist für * Formsets *, nicht für Formulare. – Alasdair