[Zope3-Users] "raise Redir(newurl)" not working - can someone
jim at zope.com
Sat Apr 19 09:43:03 EDT 2008
On Apr 19, 2008, at 6:20 AM, Hermann Himmelbauer wrote:
> In my application, namely for URL-Rewriting for session handling, I
> need to
> stop the current request and redirect to another url (including the
> For that reason, I issue the following statement:
> from zope.publisher.interfaces import Redirect
> raise Redirect('http://my.new.url')
> Theoretically, this exception should be caught by the publisher and
> a redirect
> should be done, unfortunately not in my case:
> Traceback (most recent call last):
> File "/local/home/dusty/Zope-3.4.0c1/lib/python/zope/publisher/
> line 130, in publish
> obj = request.traverse(obj)
> File "/home/dusty/prog/zope3-inst/lib/python/my_app/session.py",
> line 72, in
> raise Redirect(redir_url)
> Location: /++session+
> I don't know why this happens, *maybe* that's due to inclusion of
> some 3rd
> party packages, e.g. z3c.layer.pagelet?
> To confirm this, I'd like to know if this scenario is only happening
> for me,
> so, can you please simply insert the above statement in some
> arbitrary view
> and tell me if it works?
This may be a bug in Zope 3. I suspect that there needs to be an
error view or Redirect that actually does the redirect.
I think you are going to have to register a page for the redirect
exception that calls response.redirect.
See zope.app.exception.browser for other examples of exception views.
More information about the Zope3-users