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

Odoo.sh中继承模块添加Char字段触发500服务器错误求助

Odoo.sh 中为 res.partner 添加 Char 字段触发 500 错误的排查与解决

明确问题:在 Odoo.sh 的 staging 分支构建时,给 res.partner 继承类添加 compid2 Char 字段触发 500 内部服务器错误,注释掉字段定义后恢复正常;XML 视图无问题,其他类型字段(Many2Many、Integer)均可正常添加,此前也成功实现过字段继承,但当前场景下无法使用命令行排查,需要适配 Odoo.sh 的解决方案。

用户提供的代码格式合规:

Python 代码

from odoo import models, fields

class ResPartner(models.Model):
    _inherit = 'res.partner'

    compid2 = fields.Char(string='Company ID')

XML 代码

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <record id="res_partner_form_view_inherit" model="ir.ui.view">
        <field name="name">res.partner.form.view.inherit</field>
        <field name="model">res.partner</field>
        <field name="inherit_id" ref="base.view_partner_form"/>
        <field name="arch" type="xml">
            <field name="vat" position="after">
                <field name="compid2"/>
            </field>
        </field>
    </record>
</odoo>

针对 Odoo.sh 环境的排查解决步骤:

  • 排查字段命名冲突:开启 Odoo 后台开发者模式,进入 res.partner 模型的字段列表,确认是否已有第三方模块或历史字段使用了 compid2 名称,若存在重名需修改字段名。
  • 查看构建日志详情:登录 Odoo.sh 项目后台,进入对应 staging 分支的「Logs」页面,查找构建过程中的具体错误日志(500 错误仅为表层提示,日志中会包含数据库迁移、字段约束等具体报错信息)。
  • 检查旧数据库字段兼容性:若旧数据库中曾存在 compid2 字段但类型与当前定义不符(比如之前是 Integer 类型),会导致迁移失败。可通过开发者模式查看 res.partner 字段的历史记录,确认字段类型是否冲突。
  • 确认模块依赖顺序:检查模块的 __manifest__.py 文件,确保 depends 列表中包含 base 模块,避免因模块加载顺序异常导致字段无法正确初始化。
  • 隔离测试验证:创建测试分支,仅保留 compid2 字段的代码,移除其他新增字段,重新构建验证是否为该字段单独引发的问题,排除代码耦合干扰。
  • 重新触发数据库迁移:在 Odoo.sh 分支的「Actions」菜单中选择「Rebuild」,或在备份数据后选择「Reset Database」,强制重新执行数据库迁移操作,解决可能存在的迁移缓存问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 21:07:11