[Zope3-Users] Re: redirects in a formlib EditForm

jürgen Kartnaller juergen at kartnaller.at
Sun Feb 26 03:15:30 EST 2006


Joel Moxley wrote:
> Hello list,
> 
> I keep hearing about the wonders of formlib, so I've been trying to
> migrate one of my zcml browser:editform generated forms to formlib. 
> Once I figured out how to "select(...)" fields to avoid problems with
> the "__parent__" field on my interface, this worked acceptably.
> 
> After edit changes are applied, I want to redirect the user to another
> page (ultimately, to the page from which they came).  Before I did
> this with a "changed" method on my edit form class, but this did not
> work when I switched to formlib.
> 
> Below you can see my approach.  From within my "changed" method, I
> manually call "handle_edit_action" which gives a TypeError because the
> 'Action' object is not callable.  Unfortunately, without
> "handle_edit_action", the object never gets changed upon "apply".
> 
> ** What is the best way to use a formlib EditForm to redirect a user
> after applying changes without fully cloning a "handle_edit_action"
> method? **
> 
> Many thanks,
> Joel
> 
> from zope.formlib import form
> from zope.formlib.form import action, haveInputWidgets
> 
> class PitcherEditForm(form.EditForm):
> 
>     form_fields = form.Fields(interfaces.IPitcher).select('Last',
> 'First', 'ERA')
> 
>     @action(_("Apply"), condition=haveInputWidgets)
>     def changed(self, action, data):
>         #TypeError: 'Action' object is not callable
>         self.handle_edit_action(action, data)
>         self.request.response.redirect('../../@@overview.html')

I'm doing it this way :

    def render(self):
        if self.errors is None or self.errors:
            return super(EditPerson, self).render()
        self.request.response.redirect('..')

Jürgen

-- 

---------------------------------------------------
Jürgen Kartnaller   mailto:juergen_at_kartnaller.at
                    http://www.kartnaller.at
                    http://www.mcb-bregenz.at
---------------------------------------------------



More information about the Zope3-users mailing list