Hi! Another problem.
My program is publishing objects with URLs like this:
http://host-ru/files/resources/ID/?page=1
IDs are pointers to a DB, and must be intergers. There are many IDs, so
there is no point tu put them into _q_access. The only way to handle them
is _q_lookup, right?
class Resources:
def _q_lookup(self, request, id):
try:
id = int(id)
except ValueError:
return request.redirect("http://host-ru/error-page")
Oops...
There is a loop
# Loop over the components of the path
for component in path_components:
if component == "":
# "/q/foo/" == "/q/foo/_q_index"
component = "_q_index"
object = _get_component(object, component, path, request,
namespace_stack)
in publish.py, in _traverse_url. The problem is that the loop is continuing
to traverse objects even if _get_component returned non-traversable object
(string, in my case). On the next call to _get_component quixote raise an
exception "... has no _q_exports list".
Shouldn't the loop stops after _get_component returned non-traversable
object?
Oleg.
--
Oleg Broytmann http://phd.pp.ru/ phd@phd.pp.ru
Programmers don't die, they just GOSUB without RETURN.