Duh! I didn't know there was a __dict__ available on a model :) Maybe
this code can be made simpler.

On Mar 7, 10:32 am, "orestis" <[EMAIL PROTECTED]> wrote:
> What I have done is this:
>
>     @classmethod
>     def load_from_model(clazz, model):
>         data = {}
>         fields = clazz.base_fields
>         for field in fields.keys():
>             try:
>                 data[field]=getattr(model,field)
>             except AttributeError:
>                 print field, "is not present in", model
>         #add non-simple mappings here. eg:
>         data['esso']=model.child.esso
>         form = clazz(data)
>         return form
>
>     def save_to_model(self, model):
>             model.user.first_name = self.clean_data['first_name']
>             model.user.last_name = self.clean_data['last_name']
> # more here...
>             model.save()
>             model.user.save()
>
> it's violating the DRY principle, but at least it's only in one place,
> the form Declaration, so it's easy to change. For more trivial use
> cases (no compound models etc), I think that the form_for_model will
> generate the same results.
>
> On Mar 6, 11:10 pm, [EMAIL PROTECTED] wrote:
>
> > I had similar problems, trying to tie the form and model too closely.>From 
> > what I understand the form needs to be aware of the model(s), but
>
> > there isn't anything forcing you to a 1:1 relationship (form_for_model
> > does that for convenience, but isn't the only way).  You just have to
> > override __init__() and save() for the form, and handle the model
> > specific stuff there.  I'm just starting with Django though, so
> > hopefully someone more knowledgeable will chime in and either confirm
> > or show us the right way!


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to