自定义模块 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 版本
我这样做是为了解决它
- 在 xml 文件中评论您的自定义字段
- 在您的清单中添加依赖项 "base"、"res"
- 重启odoo
- 移除"res"、"base"
- 升级您的自定义模块
- 确保在模型中添加了您要继承的新字段
- 在 xml 文件中取消注释您的字段
- 升级您的自定义模块
Odoo 10
更新:
一个好的解决方案是将模型继承为新模型,我认为这也是官方解决方案:
Class ResPartner(models.model):
_name = 'res.partner'
_inherit = 'res.partner'
my_field = fields.Char()
我正在开发自定义模块,我需要向 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 版本
我这样做是为了解决它
- 在 xml 文件中评论您的自定义字段
- 在您的清单中添加依赖项 "base"、"res"
- 重启odoo
- 移除"res"、"base"
- 升级您的自定义模块
- 确保在模型中添加了您要继承的新字段
- 在 xml 文件中取消注释您的字段
- 升级您的自定义模块
Odoo 10
更新:
一个好的解决方案是将模型继承为新模型,我认为这也是官方解决方案:
Class ResPartner(models.model):
_name = 'res.partner'
_inherit = 'res.partner'
my_field = fields.Char()