From 85c2a18dae3f31daad05f16053277d1b30a4bedb Mon Sep 17 00:00:00 2001 From: Jeremy Kersten Date: Tue, 8 Oct 2019 07:42:15 +0000 Subject: [PATCH] [FIX] http_routing: fix request.redirect withtout website installed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In case you have a controller website=True without website installed, the request.redirect() use url_for which one uses request.website_routing on the request, without that it has been set by the website dispatcher. closes odoo/odoo#38191 Signed-off-by: Jérémy Kersten (jke) --- addons/http_routing/models/ir_http.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/http_routing/models/ir_http.py b/addons/http_routing/models/ir_http.py index 06d2ee87aa8..fead4103df3 100644 --- a/addons/http_routing/models/ir_http.py +++ b/addons/http_routing/models/ir_http.py @@ -182,7 +182,8 @@ def url_for(url_from, lang_code=None, no_rewrite=False): new_url = False # don't try to match route if we know that no rewrite has been loaded. - if not request.env['ir.http']._rewrite_len.get(request.website_routing): + routing = getattr(request, 'website_routing', None) # not modular, but not overridable + if not request.env['ir.http']._rewrite_len.get(routing): no_rewrite = True # avoid useless check for 1 char URL '/', '#', ... and absolute URL