首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在odoo 9中修改另一个类中的选择字段?

在Odoo 9中修改另一个类中的选择字段,可以通过继承和重写字段的方式实现。

首先,需要创建一个新的模块来扩展目标类的功能。在该模块的__init__.py文件中,导入目标类所在的模块。

然后,在新模块的models.py文件中,创建一个新的类,并继承目标类。在新类中,使用fields.Selection来定义一个新的选择字段,并在selection参数中指定新的选项。

接下来,使用@api.model装饰器将新类的方法标记为模型方法。在该方法中,通过super关键字调用目标类的方法,并在返回结果中修改选择字段的选项。

最后,在新模块的__openerp__.py文件中,添加对目标模块的依赖。

以下是一个示例代码:

代码语言:python
代码运行次数:0
复制
# __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产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ODOO配置文件/etc/odoo.conf配置详解

Odoo是一个多租户系统:一个Odoo系统可以运行并服务于多个数据库实例。它也是高度可定制的,定制(从加载的模块开始)取决于“当前数据库”。 作为登录公司用户使用后端(web客户端)时,这不是问题:登录时可以选择数据库,然后加载自定义设置。 但是,对于没有绑定到数据库的未登录用户(门户、网站)来说,这是一个问题:Odoo需要知道应该使用哪个数据库来加载网站页面或执行操作。如果没有使用多租户,这不是问题,只有一个数据库可以使用,但是如果有多个数据库可以访问,Odoo需要一个规则来知道它应该使用哪一个。 这是--db filter的目的之一:它指定如何根据所请求的主机名(域)选择数据库。该值是一个正则表达式,可能包括动态注入的主机名(%h)或访问系统所通过的第一个子域(%d)。 对于生产中托管多个数据库的服务器,特别是在使用网站时,必须设置dbfilter,否则许多功能将无法正常工作。

02
领券