diff --git a/extra/modules/root.py b/extra/modules/root.py index 3510631..858a737 100644 --- a/extra/modules/root.py +++ b/extra/modules/root.py @@ -851,9 +851,12 @@ class AlternateRootDirectory(OldRootDirectory): except KeyError: pass else: - if formdef.category_id is None: + # if there's no category, or the request is a POST, directly call + # into FormsRootDirectory. + if formdef.category_id is None or get_request().get_method() == 'POST': get_response().filter['bigdiv'] = 'rub_service' return FormsRootDirectory()._q_lookup(component) + # if there is category, let it fall back to raise TraversalError, # it will get caught in _q_traverse that will redirect it to an # URL embedding the category