在Odoo 9中修改另一个类中的选择字段,可以通过继承和重写字段的方式实现。
首先,需要创建一个新的模块来扩展目标类的功能。在该模块的__init__.py
文件中,导入目标类所在的模块。
然后,在新模块的models.py
文件中,创建一个新的类,并继承目标类。在新类中,使用fields.Selection
来定义一个新的选择字段,并在selection
参数中指定新的选项。
接下来,使用@api.model
装饰器将新类的方法标记为模型方法。在该方法中,通过super
关键字调用目标类的方法,并在返回结果中修改选择字段的选项。
最后,在新模块的__openerp__.py
文件中,添加对目标模块的依赖。
以下是一个示例代码:
# __init__.py
import target_module # 导入目标类所在的模块
# models.py
from openerp import models, fields, api
class NewClass(models.Model):
_inherit = 'target.module' # 继承目标类
new_field = fields.Selection(
selection=[('option1', 'Option 1'), ('option2', 'Option 2')],
string='New Field'
)
@api.model
def method_to_override(self):
result = super(NewClass, self).method_to_override()
# 修改选择字段的选项
result['new_field']['selection'].append(('option3', 'Option 3'))
return result
# __openerp__.py
{
'name': 'My Module',
'depends': ['target_module'], # 添加对目标模块的依赖
...
}
在上述示例中,target_module
是目标类所在的模块,target.module
是目标类的名称。NewClass
是新创建的类,new_field
是新的选择字段。
请注意,上述示例中的代码只是一个示例,实际情况中需要根据具体的需求进行修改。
关于Odoo 9的更多信息和文档,请参考腾讯云的Odoo 9产品介绍链接地址:Odoo 9产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云