yes, but what if it's a new object and not an existing one? How do I test
this? The request method will be POST, so form will be form =
MyForm(request.POST)... so if form.pk exists in the db how do I tell it's
editing an existing object?

if request.method == 'POST':
     form = myform(request.POST)
     try:
       instance = myobj.objects.get(id=form.id)
       form = myform(request.POST, instance=instance)
       if form.is_valid():
         form.save()
       else:
          whatever goes here
     except:
       form = myform(request.POST)
        if form.is_valid():
         form.save()
       else:
          whatever goes here

Something like this or do u know a better way?





2009/6/15 Daniel Roseman <dan...@roseman.org.uk>

>
> On Jun 15, 3:20 pm, Genis Pujol Hamelink <genis.pu...@gmail.com>
> wrote:
> > Hi list,
> >
> > I am trying to create a view to update objects in the db:
> >
> > http://dpaste.com/55546/
> >
> > but when posting the data, form.is_valid() fails because the object
> already
> > exists in the db. Is there a way to validate a form using an existing
> object
> > and then save it?
> >
> > regards,
> >
> > --
> > Genís
>
> Yes, pass the instance as a parameter to the form instantiation.
> form = MyForm(instance=instance)
> --
> DR.
> >
>


-- 
Genís

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

Reply via email to