自定义模块 Odoo 上不存在错误列

Error column doesn't exist on custom module Odoo

我正在开发自定义模块,我需要向 res.partner 模型添加字段。我已经向这个模型添加了一些字段,但是从 1 周开始,当我尝试添加一个新字段时,我收到了这个错误:

ERROR: column res_partner.my_field does not exist

其他领域效果很好但这个领域不行:

my_field = fields.Boolean(default=False)

我真的不明白为什么我有这个问题。我尝试将 'contacts' 依赖项添加到我的模块,它在我的本地版本上有效,但在我的在线版本上无效

如果有人有想法那就太好了

感谢您的帮助

编辑 res.partner 类

from odoo import api, fields, models
    
class ResPartner(models.Model):
    _inherit = 'res.partner'
    
    badge_ids = fields.One2many('mymodule.badge','client_i
    sub_ids = fields.One2many('mymodule.subs','client_id')
    #field that doesn't work
    my_field = fields.Boolean(default=False)

清单依赖项

'depends': ['base', 'sale', 'website', 'calendar','contacts', 'point_of_sale', 'base_automation'],
class Partner(models.Model):
    _inherit = "res.partner"

   my_field = fields.Boolean()

注意:在自定义模块的清单中提供 'base' 作为依赖项。

看起来像一个错误。这是可能的解决方法:

将'res'添加到依赖项以及'base',然后重新启动odoo实例。

确认字段更新后;从依赖项中删除 'res' 然后升级模块。

此行为存在于 8.0 以上的 Odoo 版本

我这样做是为了解决它

  1. 在 xml 文件中评论您的自定义字段
  2. 在您的清单中添加依赖项 "base"、"res"
  3. 重启odoo
  4. 移除"res"、"base"
  5. 升级您的自定义模块
  6. 确保在模型中添加了您要继承的新字段
  7. 在 xml 文件中取消注释您的字段
  8. 升级您的自定义模块

Odoo 10

更新:

一个好的解决方案是将模型继承为新模型,我认为这也是官方解决方案:

Class ResPartner(models.model):
    _name = 'res.partner'
    _inherit = 'res.partner'

    my_field = fields.Char()