Gary Poster wrote: > > On Feb 26, 2006, at 4:17 PM, jürgen Kartnaller wrote: > >> Joel Moxley wrote: >>>>> ** 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? ** >>>>> >>>> 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 >>> >>> Thanks Jürgen! That works perfectly for me. >>> >>> Looking one step forward, I would like to redirect the user back to >>> the previous page from whence they came (without using sessions). I >>> figure I am going to need to stash that value on my EditForm class and >>> then pull it up during the redirect in my render method. I've done my >>> best to explore this, but I can't figure out where the previous page >>> information will be available on my EditForm. >>> >>> ** Where should I stash previous page information for future redirects >>> on my EditForm? ** >> >> That's also an unsolved use case I have. >> >> The 'default' template of 'FormBase' contains the slot 'extra_info' >> which could be filled with some hidden input fields. >> >> I defined a new template for my own EditForm. >> >> But now I would like to use the existing template in formlib >> 'pageform.pt' and fill the slot but don't know how. >> >> Is this a possible way and the right way ? >> >> How can I use the existing template ? >> It must be useable with metal:use-macro somehow. > > Yes, we write custom templates that use hidden input fields. We reuse > the existing template by putting the default template on another > attribute of the view class, and then saying 'metal:use-macro="view/...' > > For instance > > class MyForm(zope.formlib.form.EditForm): > base_template = zope.formlib.form.EditForm.template > template = (...a named template if you want, or just a page template > directly...) > > Then in your template, you can refer to macros in the original like this: > > 'metal:use-macro="view/base_template/macros/extra_info"'
Thanks a lot for this. The above metal statement doesn't work, I do it this way : metal:use-macro="view/base_template/macros/main" and then metal:fill-slot="extra_info" Jürgen -- --------------------------------------------------- Jürgen Kartnaller mailto:juergen_at_kartnaller.at http://www.kartnaller.at http://www.mcb-bregenz.at --------------------------------------------------- _______________________________________________ Zope3-users mailing list Zope3-users@zope.org http://mail.zope.org/mailman/listinfo/zope3-users