Data una classe form (da qualche parte nel profondo del vostro gigante Django app) ..Monkey patching una classe di forma Django?
class ContactForm(forms.Form):
name = ...
surname = ...
E considerando che si desidera aggiungere un altro campo a questa forma, senza estendere o modificare la classe forma stessa, perché non la il seguente approccio funziona?
ContactForm.another_field = forms.CharField(...)
(La mia prima risposta è che la hackery metaclasse che Django utilizza applica solo la prima volta che la classe del form è costruito. Se è così, ci sarebbe un modo per ridichiarare classe per superare questo?)
Hai quasi certamente ragione. Questo è esattamente il motivo per cui non è possibile aggiungere facilmente nuovi campi a modelli. Sottoclasse modello. –
Con i modelli c'è il problema "syncdb" anche se la patch della scimmia ha funzionato. Ma con le forme di patch scimmia potrebbe essere un risparmiatore di vita in determinati momenti IMHO. –