On 2/26/06, Gary Poster <[EMAIL PROTECTED]> 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-
> 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
> Notice that the pageform.pt *extends* the context/@@standard_macros/
> view macro, so you can customize slots from your main template too.
> There are lots of other solutions, but that's the one I know of that
> I consider to be best ATM.
> Zope3-users mailing list
Thanks. Ok, so now that I know the location on which to stash
previous page information, _how_ do I get the previous page
Ie, at what method in the edit form do I pull out the page from whence
the user came? And most importantly, how do I get the page from
whence the user came? Is it in the incoming request? I've been
looking at the request object, but I did not see that information in
So the idea is...
page X -> edit.html -> "apply" -> page X
... where page X can change.
Zope3-users mailing list