Yeah I like the ModelForm class idea better, for sure. Are you coding it or will I?
On Feb 13, 3:13 am, "RonnyPfannschmidt" <[EMAIL PROTECTED]> wrote: > that wouldnt remove the strict distinction betwen form_for_model > and form_for_instance (the only difference i see, is that one of them > has a initial instance > > and i really would like to have a base class, since i like to avoid > monkey-patching > > using the function result as a base-class would be an acceptable > solution > > but i would apreciate a different use-pattern > > default forms: > > MyForm = modelForm(model) > > MyForm() #for add-forms > MyForm(instance=foo) or Myform(object_id=bar) # edit forms > > class Myform(modelForm(model)): > # extend me :) > pass > > cause i dislike recreating the form classes every time someone wants > to edit something > > On 12 Feb., 17:43, "Honza Král" <[EMAIL PROTECTED]> wrote: > > > On 2/12/07, Scott Paul Robertson <[EMAIL PROTECTED]> wrote: > > > > On Mon, Feb 12, 2007 at 07:45:52AM -0800, RonnyPfannschmidt wrote: > > > > > The actual method of creating Model related forms is a set of > > > > functions returning form classes > > > > > thats nice to use, but not very nice to extend > > > > > Im proposing a Base class wich allows to pass models/instances to > > > > generate forms, or inherit to extend the forms > > > > > default usage would be ModelForm(model=MyModel), > > > > ModelForm(instance=myinstance) > > > > or ModelForm(model=MyModel,object_id=myid) > > > > > extending would be something like > > > > > class EntryForm(ModelForm): > > > > Model = Entry > > > > remove_fields=("some","private","fields") > > > > # some fields of entry need custom formfields, so lets just set > > > > them up > > > > text = SaveXHTMLField(widget=TinyMCEWidget) > > > > def clean_title(self): > > > > pass # i should really do the check here > > > > > to make a AddForm i would just use EntryForm() > > > > to get a EditForm i'd just use EntryForm(instance=e) or > > > > EntryForm(object_id=entry_id) > > > > I've actually been using newforms with regards to models recently. I > > > don't think there is a need for a new class to extend. Rather, you could > > > easily do the same in models.form_for_model with extra arguemts (which > > > don't exist at the moment). > > > > IE: > > > form_for_model(Entry, not_required=['some','private','fields']) > > > > Also changing widgets is a breeze: > > > EntryForm.fields['text'].widget = some.widget.class() > > > > You can still add clean methods after the fact by assigning functions to > > > EntryForm.clean_title, ie: > > > EntryForm.clean_title = lambda self: pass # do stuff > > > > -- > > > Scott Paul Robertson > > >http://spr.mahonri5.net > > > GnuPG FingerPrint: 09ab 64b5 edc0 903e 93ce edb9 3bcc f8fb dc5d 7601 > > > or, since we are in python, this should also work: > > > class MyModelForm( forms_for_model(Model) ): > > #define what you want here...delete fields in __init__ etc. > > > -- > > Honza Král > > E-Mail: [EMAIL PROTECTED] > > ICQ#: 107471613 > > Phone: +420 606 678585 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-developers@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-developers?hl=en -~----------~----~----~----~------~----~------~--~---