首页
学习
活动
专区
工具
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产品介绍

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

相关·内容

oraclevarchar2最大长度是_oracle修改字段长度sql

大家好,我是架构君,一个会写代码吟诗架构师。今天说一说oraclevarchar2最大长度是_oracle修改字段长度sql,希望能够帮助大家进步!!!...在设计表时候,设计了一个未来可能会使用字段,varchar2型,长度较长。因为目前不会使用,因此想到这样设计会否暂用额外空间。...根据VARCHAR2定义,为可变长 度字符串,因此应该不会占用多余空间,在找了一些资料之后,验证了这个结论。...但是会否影响插入或者查询效率呢,本人没有研究过数据库底层原理,但基于基本逻辑判断 以及对数据库信任,拍脑袋判断影响不大。...因此,在80%后期会使用字段,可以预先创建,否则,还是等需要再建吧,以免造成误解。 今天文章到此就结束了,感谢您阅读,Java架构师必看祝您升职加薪,年年好运。

3.5K30

odoo 开发入门教程系列-继承(Inheritance)

我们 TestModel 继承与Model,该Model提供了 create(), read(), write() 和unlink()方法。...Python 3, super() 等价于 super(TestModel, self)。当你需要使用一条被修改结果集调用父方法时,可能需要使用后者。...第一继承机制允许模块通过以下方式修改另一个模块定义模型行为: 向模型添加字段 覆盖模型字段定义 给模型添加约束 给模型添加方法 重写模型现有方法 第二种继承机制...odoo,第一种机制最常用。在我们例子,我们希望向现有模型添加一个字段,这意味着我们将使用第一种机制。...它arch字段包含多个xpath元素,用于选择和更改父视图内容,而不是单个视图:

2.2K20

odoo 开发入门教程系列-模块交互

模块交互 在上一章,我们使用继承来修改模块行为。在我们房地产场景,我们希望更进一步,能够为客户生成发票。...Odoo提供了一个开发票模块,因此直接从我们房地产模块创建发票是很简单,也就是说,一旦某个房产设置为“已售出”,就会在Invoicing应用程序创建发票 一个具体示例: 记账凭证(Account.../14.0/zh_CN/_images/create_inv.gif 每当我们与另一个模块交互时,我们都需要记住模块化。...不幸是,没有一种简单方法可以知道如何在Odoo创建任何给定对象。大多数时候,有必要查看其模型,以找到所需字段并提供适当值。 学习一个好方法是看看其他模块是如何完成你想做事情。...为此在account.move创建中包含invoice_line_ids字段,这是一个One2many字段。One2many和Many2many使用通用ORM方法描述特殊“commands”。

1.6K10

Odoo开发指北 01 初识Odoo

继承开发 Odoo提供了大量现成模块给我们使用,但是某些情况下,我们需要制定符合自己需求功能模块。Odoo开发一条黄金准则是——不要修改现有的模块,以免改动后代码与原有模块产生混淆。...因此,odoo提供了继承机制,我们可以选择一个基础模块,然后继承它,在它基础上进行修改、扩展,生成自己模块。...然后使用自己模块:把自己模块路径设置到odoo,重启odoo让其搜索到自定义模块,即可通过odoo进行安装。...定义出模型会自动与Odoo提供ORM接口匹配,也就是说这些模型会自动存入sql。...Odoo 脚手架 odoo-bin scaffold 命令新建了我们 aaa 应用 …/odoo-bin scaffold aaa 模块开发流程 分析模块模型,得出模型所需字段有哪些,然后定义模型

2.3K30

odoo 开发入门教程系列-模型和基本字段

ORM 层是odoo一个关键组件。该层避免了手动写入大部分SQL并提供可扩展性和安全服务. 业务对象被定义为继承于 ModelPython。可以通过在定义设置属性来配置model。...最重要属性为 _name,该属性定义了model在odoo系统属性。...有两大类领域字段:‘简单’字段--直接存储在模型表原子值,形如Boolean, Float, Char, Text, Date 和Selection, ‘关系型’ 字段--连接相同或者不同模型记录...Selection(选择列表)定义为元组列表,查看示例 修改odoo14/custom/estate/models/estate_property.py文件 #!...自动创建字段(Automatic Fields) 参考: 该话题相关文档可参考 Automatic fields. odoo会在所有model(当然,也可以配置禁止自动创建某些字段)创建少数字段

2.3K30

odoo ORM API学习总结兼orm学习教程

字段(Fields) class odoo.fields.Field[源代码] 字段拥有以下属性 string (str) – 用户看到字段标签;如果未设置,ORM将采用字段名开头字母改成大写后...related字段依赖项包含 Many2many 或者 One2many 字段 related 可以用于引用另一个模型 One2many 或Many2many 字段,前提是通过当前模型一个Many2one...在出现字段表单视图中,当修改某个给定字段时,将调用该方法。在包含表单存在伪记录上调用该方法。该记录上字段赋值将自动返回客户端。...参数: fnames–已修改字段列表,None表示所有字段 ids–修改记录ID列表,None表示所有记录 警告 执行原始SQL绕过ORM,从而绕过Odoo安全规则。...如果扩展了模型,还可以通过在子类上重新定义具有相同名称和类型字段来扩展字段定义。在这种情况下,字段属性取自父,并由子类给定属性覆盖。

13.4K10

odoo 开发入门教程系列-模型之间关系(Relations Between Models)

模型之间关系(Relations Between Models) 上一章介绍了为包含基本字段模型创建自定义视图。然而,在任何真实业务场景,我们都需要不止一个模型。此外,模型之间链接是必要。...根据类型对房地产进行分类是一种标准业务需求,尤其是为了优化过滤。 一个房产可以有一个类型,但同一型可以分配给多个房产。这得到了many2one概念支持。...many2one是指向另一个对象简单链接。...它支持标准Python集合操作,len()和iter(),以及recs1 | recs2等额外集合操作。...首先,我们不需要所有模型操作或菜单。某些模型只能通过另一个模型访问。在我们练习中就是这样:报价总是通过房产获得。 其次,尽管property_id字段是必需,但我们没有将其包含在视图中。

4.4K40

odoo 开发入门教程系列-基本视图

在上一章已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受。相反,我们至少应该以逻辑方式组织各个字段。 视图是在带有操作和菜单XML文件定义。...它们是ir.ui.view model实例。 在我们estate模块,我们需要以逻辑方式组织字段: 在列表(树)视图中,我们希望显示不仅仅是名称。 在表单视图中,应该对字段进行分组。...div"和"h1")以及"class"属性(Odoo提供了一些内置)来微调外观。...练习 -- 添加自定义表单视图 在合适XML文件为estate.property 定义视图 为了避免每次修改视图时都重新启动服务器,可以在启动服务器时添加--dev-xml,以便只刷新页面就可以查看视图修改...在odoo,domain对记录上条件进行编码:domain是用于选择模型记录子集条件列表。每个条件都是一个包含字段名、运算符和值三元组。

3.2K40

odoo 开发入门教程系列-一些用户界面

我们看到一些属性,required=True,会影响数据库表模式。其他属性也将影响视图或提供默认值。 练习 -- 添加一些属性到字段。...查找一些合适属性 (查看字段) 来: 设置售价为只读 阻止复制可用日期和售价 修改 odoo14\custom\estate\models\estate_property.py EstateProperty...修改 odoo14\custom\estate\models\estate_property.py EstateProperty,增加active属性 active = fields.Boolean...练习 -- 添加state字段 为estate.property model添加state 字段(字段名可自定义),一个选择列表。...必选字段,且不能被拷贝,默认值New 修改 odoo14\custom\estate\models\estate_property.py EstateProperty修改active字段,增加state

2.9K30

odoo 开发入门教程系列-计算字段和变更(Computed Fields And Onchanges)

到目前为止,除了定义和字段声明之外,我们还没有编写任何其他东西。 计算字段(Computed Fields) 参考: 主题关联文档可查阅 Computed Fields....自然地我们将总面积定义这两者总和,我们将为此使用计算字段概念,即给定字段值将从其他字段值中计算出来。 到目前为止,字段已直接存储在数据库并直接从数据库检索。字段也可以被计算。...每当修改字段某些依赖项时,ORM使用给定依赖项来触发字段重新计算 from odoo import api, fields, models class TestComputed(models.Model...修改odoo14\custom\estate\models\estate_property_offer.py from odoo import models, fields 修改为 from odoo...description 当数以百万计记录需要重新计算时,这可能会很快会变得无法承受 还值得注意是,计算字段可以依赖于另一个计算字段

3.1K30

odoo 开发入门教程系列-QWeb简史

表单视图也是如此:尽管使用了一些标记,或,但在设计方面几乎没有什么可做。 然而,如果我们想给我们应用程序一个独特外观,就必须更进一步,能够设计新视图。...此外,PDF报告或网站页面等其他功能需要另一个更灵活工具:模板引擎。 您可能已经熟悉现有的引擎,Jinja(Python)、ERB(Ruby) 或Twig(PHP)。...目标: 本节结束时创建一个房产看板视图 在我们地产应用程序,我们希望添加一个看板视图来显示我们房产。看板视图是标准Odoo视图(如表单和列表视图),但其结构更灵活。...提示: 必须在ir.actions.act_window对应view_mode添加 kanban 修改odoo14\custom\estate\views\estate_property_views.xml...在上面的示例字段name被添加到元素,但state在它之外。当我们需要字段值但不想在视图中显示它时,可以将其添加到元素之外。

2K20

ODOO优化层级关系查询效率方法

Odoo10 Development Essentials》Chapter5(p106)中介绍了Odoo中分层关系建立。 代码如下 在上面的代码。 使用字段来关联上层记录。...(递归查询文件夹文件) Odoo为了提高层次结构(树状结构)查询效率,每一条层级数据记录添加跟字段. 假设A是B上级对象。那么存在这样逻辑关系。...Odoo 应用 我们用Odoo11product模块作为演示 在文件.看到产品目录(ProductCategory.15行起)代码 在Odoo11演示数据,产品目录结构一共有6个 我们查询下数据库数据...要找Saleable下所有子目录即可使用 作为条件 结论: 在Odoo实际使用,发现使用parent存储特性模块主要涉及account, product, stock_location....凡事皆有两面,这种存储特性会在数据库添加多余字段。其实是以空间换时间。

2.3K80

odoo 权限管理学习总结

12.0/base_user_role/ 权限管理 简介 为了更好熟悉权限,我们先来了解下用户,odoo用户分为三: 内部用户(Internal User): 企业内部用户,拥有对系统内部访问权限...res_partner表,那么在odoo如何区分用户类型以及如何做权限控制呢?...) ORM字段可以具有提供组列表groups属性(值为逗号分隔组XML ID列表,groups='base.group_user,base.group_system')注意:groups属性值格式...如果当前用户不在列出,他将无权访问该字段: 将自动从请求视图中删除受限制字段 从fields_get()响应删除受限制字段 尝试(显式)读取或写入受限字段会导致访问错误 修改estate...注意:通过为当前视图中目标字段添加groups属性实现权限控制仅作用于当前视图,如果希望当前视图模型(Model)所有视图中,对该字段实现统一权限控制话,需要在模型定义,为目标字段添加groups

10.1K20

odoo 开发入门教程系列-约束(Constraints)

约束(Constraints) 上一章介绍了向模型添加一些业务逻辑能力。我们现在可以将按钮链接到业务代码,但如何防止用户输入错误数据?...例如,在我们房地产模块,没有什么可以阻止用户设置负预期价格。 odoo提供了两种设置自动验证恒定式方法:Python约束 and SQL约束。...修改odoo14\custom\estate\models\estate_property_type.py,添加SQL约束 _sql_constraints = [('check_name',...Python约束定义为用 constrains()修饰方法,并在记录集上调用。修饰符指定约束涉及哪些字段。当修改这些字段任何字段时,将自动计算约束。...修改odoo14\custom\estate\models\estate_property.py 导入 ValidationError from odoo.exceptions import ValidationError

1.4K20

odoo context上下文用法总结

_context is {'key1': True, 'key2': True} 需要注意是,上下文是和记录集绑定修改上下文并不会在其它记录集中共享 应用场景示例 用于action,为关联视图添加默认搜索...,其中fieldName 表示过滤器名称,即搜索视图中定义、元素name属性值 content 如果fieldName为搜索字段name属性值,那么...> 说明:context属性值字典键值如果为模型定义字段名称,则该字段名称必须以元素形式,出现在模型对应视图(即不能是内联视图,比如内联Tree列表),否则会出现类似错误提示...为可编辑列表视图字段搜索添加查询过滤条件](odoo 为可编辑列表视图字段搜索添加查询过滤条件.md) 用于记录集,传递数据给模型方法 模型设计 #!...或者write方法,调用该方法前修改上下文,然后在方法通过self.env.context获取上下文中目标key值,进而实现目标需求 res = super(EstatePropertyTag

2.1K20

Odoo 基础教程系列」第三篇——从 Todo 应用开始(2)

选择字段 在上一篇教程,我们已经创建好了待办事项模型,但是只是添加了「描述」和「已完成?」两个字段,这肯定是不能满足我们需求。...priority,并且指定了三个可供选择程度类型,一般情况下,如果一个字段只有固定几种可选值,通常都会选择使用 Selection 字段,它接受一个元组列表作为参数,其中元组组成为 (value...在上一篇教程我们提到过,在对模型进行改动之后,需要对模块进行升级才能看到变更后样子,除了从应用列表中找到模块进行升级外,我们还可以在命令行Odoo 启动命令加上参数 -u todo 指定升级...deadline 这个字段值(我们需要用它值和当前时间进行比较),如果一个计算字段会用到多个其他字段值,这里就需要以逗号分隔,将用到字段名依次传入装饰器。...实际上获取当前时间用也是这个方法,只不过 Odoo ORM 替我们封装了一层,fields.Datetime.now() 是 Datetime 静态方法: # fields.py class

1.3K10

odoo 为form表单视图添加chatter功能

实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如图,给表单新增一个类似聊天窗口,当记录一些表单活动(本例为自动记录当前记录状态变化) 需求实现 模型定义...odoo14\custom\estate\models\estate_property.py 需要继承mail.thread模型,并为需要追踪字段设置tracking属性,并设置属性值为真值 #!...\odoo\addons\mail\models\mail_thread.py,其字段命名均以message_开头 tracking 该属性为True或数字时,打开针对该属性所属字段修改日志-...-当所属字段内容发生变化时,系统会将该字段变化前后值写入日志,这个数字大小影响变更日志在日志排序。...\odoo\addons\mail\models\mail_activity.py,其字段命名均以activity_,对应,模型定义_inherit 属性也需要添加该模块,如下: _inherity

72720

使用Kompose从Docker Compose 迁移到 Kubernetes

代码库是否在容器化环境运行呢? 这很好 ! 但是如何使它可用?...生成未填写字段必须填写。例如,在我们示例Odoo CRM 需要其 URL,以便 Traefik 重定向到它。...它最终行为与真正 Ingress Controller 工作行为非常相似,但它会在您集群引起特殊性。...使用您自己流重定向系统需要您确定自己在做什么,因为您最终将不得不处理特定于该网络层实现问题。帮助调试资源将更难找到。 另一个副作用:在部署....但是,在 Kubernetes 集群上部署第二个相同类型堆栈,使用另一个 Traefik 实例,会报错:此处使用端口 443已被部署第一个堆栈占用。

3.5K30
领券