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

如何在Odoo中基于登录域名动态修改公司名称?

Odoo基于登录域名动态修改公司名称解决方案

一、是否需要自定义模块?

Odoo没有内置基于登录域名动态修改公司名称的功能,必须通过自定义模块实现。

二、自定义模块实现步骤及代码示例

1. 模块基础结构

创建如下目录结构的自定义模块:

custom_domain_company_name/
├── __init__.py
├── __manifest__.py
├── controllers/
│   ├── __init__.py
│   └── main.py
└── models/
    ├── __init__.py
    └── res_company.py

2. 模块配置文件(manifest.py)

{
    'name': '动态域名公司名称',
    'version': '1.0',
    'author': '自定义开发者',
    'category': 'Tools',
    'depends': ['base', 'web'],
    'data': [],
    'installable': True,
    'auto_install': False,
}

3. 重写公司模型计算显示名称的方法(models/res_company.py)

通过请求上下文获取当前域名,动态替换公司显示名称:

from odoo import models, api
from odoo.http import request

class ResCompany(models.Model):
    _inherit = 'res.company'

    @api.depends_context('request')
    def _compute_display_name(self):
        super()._compute_display_name()
        if not request:
            return
        host = request.httprequest.host
        # 配置域名与目标公司名称的映射
        domain_name_map = {
            'company_1.com': 'Company 1',
            'company_2.com': 'Company 2'
        }
        if host in domain_name_map:
            self.display_name = domain_name_map[host]

4. 前端控制器适配(controllers/main.py,可选)

确保前端导航栏能正确获取动态更新的名称:

from odoo import http
from odoo.http import request

class Home(http.Controller):
    @http.route('/', type='http', auth="none")
    def index(self, **kw):
        return request.render('web.webclient_bootstrap', qcontext={})

    @http.route('/web', type='http', auth="user")
    def web_client(self, s_action=None, **kw):
        return request.render('web.webclient_bootstrap', qcontext={})

5. 安装与测试

  • 将模块放入Odoo的addons目录
  • 刷新模块列表,安装该模块
  • 分别通过company_1.com、company_2.com登录系统,验证导航栏的公司名称是否动态切换

注意事项

  • 需确保服务器已完成多域名解析,所有目标域名指向同一个Odoo实例
  • 若要支持子域名,可修改domain_name_map的匹配逻辑,比如使用正则表达式匹配域名前缀
  • 如需同时切换当前登录用户的关联公司,可在代码中添加request.env.user.company_id = 对应公司记录的逻辑

内容的提问来源于stack exchange,提问作者Sandun Tharaka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 06:57:13