跳至内容

理解Odoo网站配置架构的模型

Odoo 中网站模型的完整指南,适用于开发人员和功能顾问
2026年3月11日
理解Odoo网站配置架构的模型
Dasolo
| 还没有评论

介绍


在 Odoo 中,模型定义了数据在数据库中的结构和存储方式。您处理的每一条业务数据都存在于一个模型中。


理解 Odoo 模型对于开发人员和功能顾问都是至关重要的。模型是 Odoo 数据架构的基础。它们定义了 Odoo 字段、关系和业务逻辑。


本文重点介绍网站模型。它驱动 Odoo 中的网站配置。无论您是在构建多网站设置、定制品牌,还是与外部系统集成,您都将使用该模型。

什么是网站模型


该网站模型表示Odoo中的网站配置。此模型在Odoo中存储定义网站外观和行为的所有内容:域名、语言、品牌、社交链接和菜单结构。


它是网站应用的一部分,被每个Odoo网站使用。在多网站设置中,您将拥有多个网站记录。每个记录可以拥有自己的域名、公司、语言和主题。


Odoo中的其他模型通过website_id字段引用网站模型。许多Odoo模型都有一个website_id字段,以将内容范围限制到特定网站。这就是Odoo模型继承和Odoo中的api模型如何协同工作的方式。

模型中的关键字段


以下是网站模型中最重要的Odoo字段。理解这些将帮助您有效地处理网站配置。


1. name

类型:字符。必填。此字段存储网站名称。它在后台切换器和配置屏幕中显示。它是网站的主要标识符。


2. sequence

类型:整数。默认值10。当存在多个网站时,控制显示顺序。较低的值优先显示。


3. domain

类型:字符。网站域名(例如:https://www.mydomain.com)。如果缺少,Odoo会添加https。必须是唯一的。用于路由和SEO。


4. company_id

类型:多对一(res.company)。必填。将网站链接到Odoo公司。在多公司设置中,每个网站仅显示与公司相关的数据。


5. language_ids

类型:多对多(res.lang)。此网站上可用的语言。访客可以在它们之间切换。默认为所有已安装的语言。


6. language_count

类型:整数。计算得出。语言的数量。用于显示和过滤。


7. default_lang_id

类型:一对多(res.lang)。必填。访客首次访问时的默认语言。必须在 language_ids 中。


8. auto_redirect_lang

类型:布尔值。默认值为真。当启用时,访客会被重定向到他们的浏览器语言(如果可用)。


9. cookies_bar

类型:布尔值。当为真时,显示一个 cookies 条。对于 GDPR 合规性很有用。Odoo 可以自动创建一个 cookie 政策页面。


10. logo

类型:二进制。网站徽标。显示在页眉和其他地方。如果未设置,则默认为 Odoo 徽标。


11. favicon

类型:二进制。浏览器标签中显示的 favicon。Odoo 将其调整为 256x256。


12. social_twitter

类型:字符。Twitter/X 账户 URL。默认来自公司。用于页脚和社交分享。


13. social_facebook

类型:字符。Facebook 账户 URL。与其他社交字段相同的模式。


14. social_linkedin

类型:字符。LinkedIn 账户 URL。


15. social_instagram

类型:字符。Instagram 账户 URL。


16. social_youtube

类型:字符。YouTube 账户 URL。


17. social_github

类型:字符。GitHub 账户 URL。


18. social_tiktok

类型:字符。TikTok 账户 URL。


19. social_default_image

类型:二进制。社交分享的默认图像。设置时覆盖徽标。用于 Open Graph 和 Twitter 卡片。


20. google_analytics_key

类型:字符。Google Analytics 密钥。用于跟踪。Odoo 在配置时注入脚本。


21. google_maps_api_key

类型:字符。Google Maps API 密钥。用于地图和位置功能。


22. user_id

类型:Many2one (res.users)。必填。此网站的公共用户。用于门户访问和匿名访客。默认值来自公司。


23. cdn_activated

类型:布尔值。当为真时,静态资产从CDN提供。提高性能。


24. cdn_url

类型:字符。CDN基础URL。当cdn_activated为真时使用。


25. cdn_filters

类型:文本。用于重写的URL的正则表达式模式。默认为静态路径。


26. menu_id

类型:Many2one (website.menu)。计算得出。主菜单。指向此网站的根菜单项。


27. homepage_url

类型:字符。主页路径(例如 /contactus 或 /shop)。必须以斜杠开头。


28. custom_code_head

类型:Html。注入到头部的自定义代码。用于分析、脚本或元标签。


29. custom_code_footer

类型:Html。注入在页脚的自定义代码。适用于聊天小部件或跟踪。


30. robots_txt

类型:Html。自定义的robots.txt内容。用于SEO和爬虫控制。


31. theme_id

类型:Many2one (ir.module.module)。已安装的主题。


32. auth_signup_uninvited

类型:选择。b2b(按邀请)或b2c(免费注册)。控制访客是否可以在没有邀请的情况下创建帐户。


33. create_date

类型:日期时间。记录创建的时间。由Odoo自动管理。


34. write_date

类型:日期时间。记录最后修改的时间。同样由系统自动管理。

该模型在业务工作流程中的使用方式


1. 多网站和本地化

拥有多个品牌或地区的公司为每个网站创建一个网站记录。每个网站都有自己的域名、语言和内容。页面、博客和产品上的 website_id 字段将数据范围限制到正确的网站。


2. 品牌和身份

每个网站的徽标、网站图标和社交链接都是单独配置的。市场营销团队在重新品牌时更新这些内容。social_default_image 字段改善了链接分享时的外观。


3. 语言和 SEO

language_ids 和 default_lang_id 控制可用的语言。auto_redirect_lang 改善国际访客的用户体验。正确的配置有助于 SEO 和 hreflang。


4. 性能和 CDN

当流量增长时,cdn_activated 和 cdn_url 将静态资产卸载到 CDN。cdn_filters 定义哪些 URL 被重写。


5. 合规性和分析

cookies_bar 启用 cookie 同意横幅。google_analytics_key 和 custom_code_head 注入跟踪代码。robots_txt 控制爬虫访问。

开发人员如何扩展该模型


开发人员使用多种模式扩展网站模型。Odoo 模型继承是主要机制。


模型继承

使用 _inherit = 'website' 来扩展模型。添加新的 Odoo 字段,重写方法或添加约束。Odoo 中的继承模型将您的更改保存在一个单独的模块中,以便于升级。


添加字段

在您的继承模型中定义新的 Odoo 字段。使用正确的字段类型:Char、Many2one、Boolean、Integer、Text、Selection。考虑多网站逻辑下的网站相关字段。


Python 扩展

重写 createwriteunlink 来添加逻辑。使用 super() 调用原始方法。在以编程方式创建网站时,注意 user_id 和 company_id。


Odoo Studio

Odoo Studio 允许您无需代码添加字段。适合快速定制。对于复杂逻辑或 API 驱动的配置,自定义模块更易于维护。

最佳实践


  • 在生产中为每个网站设置域。这有助于路由和 SEO。
  • 保持 default_lang_id 在 language_ids 内。Odoo 在更改时会验证这一点。
  • 使用 custom_code_head 和 custom_code_footer 来添加第三方脚本。避免修改核心模板。
  • 在构建 API 集成时,使用 XML-RPC 或 JSON-RPC API。网站模型是完全公开的。在同步内容时正确映射 website_id。
  • 对于自定义字段,使用 x_ 前缀或模块前缀,以避免与未来的 Odoo 版本发生冲突。

常见错误


  • 创建重复的域名。域名字段具有唯一约束。
  • 在通过 API 创建网站时忘记设置 user_id。该字段是必需的。
  • 设置 homepage_url 时未加前导斜杠。Odoo 会进行验证并抛出错误。
  • 在没有有效 cdn_url 的情况下启用 cdn_activated。资产可能无法加载。
  • 重写核心方法而不调用 super()。这可能会破坏其他模块或未来的升级。

结论


网站模型是 Odoo 中站点配置的核心。它存储域名、语言、品牌和行为。理解其 Odoo 字段以及其他模型如何引用它将帮助您有效配置、定制和集成 Odoo 网站。


无论您是映射多站点需求的功能顾问,还是构建自定义模块的开发人员,扎实掌握网站模型将节省时间并防止错误。

需要帮助进行 Odoo 实施吗?


Dasolo 帮助公司实施、定制和优化 Odoo。我们专注于 API 集成和 Odoo 开发。我们的团队在 Odoo 数据架构和网站等模型方面拥有深厚的经验。


如果您需要帮助进行 Odoo 实施、多网站设置或集成,我们随时为您提供帮助。 预约演示 以讨论您的项目。

理解Odoo网站配置架构的模型
Dasolo 2026年3月11日
分析这篇文章
登录 留下评论