On Apr 19, 2008, at 6:20 AM, Hermann Himmelbauer wrote:
Hi,
In my application, namely for URL-Rewriting for session handling, I
need to
stop the current request and redirect to another url (including the
session
key).
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/
publish.py",
line 130, in publish
obj = request.traverse(obj)
....
File "/home/dusty/prog/zope3-inst/lib/python/my_app/session.py",
line 72, in
getClientId
raise Redirect(redir_url)
Redirect:
Location: /++session+
+VLdODjCYl90YmQwdNG6hvdiT11UZS3oly5kXonWYLHdGHloxvTshQs/favicon.ico
--------------
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.
Jim
--
Jim Fulton
Zope Corporation
_______________________________________________
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users