You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo中如何无需硬编码站点URL将用户重定向到登录页做二次验证

解决方案

  • 原代码基础修复:遗漏return关键字,Odoo无法识别触发重定向动作,必须补充返回动作字典
  • 动态获取站点URL:调用Odoo内置系统参数web.base.url获取当前站点根地址,该参数在Odoo部署时自动配置,无需硬编码托管地址
  • 二次验证回调适配:重定向到登录地址时追加redirect参数,用户完成身份校验后会自动跳转回指定业务页面,无需额外交互
def authorize_execute_payments(self):
    # 动态取当前站点根路径
    base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url')
    # 配置验证完成后的回跳地址,示例为跳回当前记录的表单页
    redirect_path = f"/web#id={self.id}&model={self._name}&view_type=form"
    # 拼接带回调的二次验证登录地址
    login_verify_url = f"{base_url}/web/login?redirect={redirect_path}"
    
    return {
        "type": "ir.actions.act_url",
        "url": login_verify_url,
        "target": "self",
    }

若逻辑在HTTP控制器内触发,也可直接通过request.httprequest.host_url获取当前请求的域名,效果与读取web.base.url一致。

内容的提问来源于stack exchange,提问作者A.Sasori

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:51:00