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

如何在模型A的字段中使用onchange更新模型B中的字段?Odoo 12

在Odoo 12中,可以通过使用@api.onchange装饰器来实现在模型A的字段中使用onchange事件来更新模型B中的字段。下面是一个完整的示例:

  1. 首先,导入必要的模块和类:
代码语言:txt
复制
from odoo import models, fields, api
  1. 创建模型A和模型B:
代码语言:txt
复制
class ModelA(models.Model):
    _name = 'model.a'

    name = fields.Char(string='Name')
    field_a = fields.Char(string='Field A')

    @api.onchange('field_a')
    def _onchange_field_a(self):
        # 更新模型B中的字段
        self.env['model.b'].search([]).write({'field_b': self.field_a})


class ModelB(models.Model):
    _name = 'model.b'

    name = fields.Char(string='Name')
    field_b = fields.Char(string='Field B')

在上面的示例中,模型A具有一个名为field_a的字段,当该字段的值发生变化时,_onchange_field_a方法会被触发。在该方法中,我们使用self.env['model.b'].search([])来获取模型B的所有记录,并使用write方法更新field_b字段的值为field_a的值。

请注意,这只是一个简单的示例,实际应用中可能需要根据具体需求进行适当的修改。

推荐的腾讯云相关产品:腾讯云服务器(https://cloud.tencent.com/product/cvm)、腾讯云数据库(https://cloud.tencent.com/product/cdb)、腾讯云人工智能(https://cloud.tencent.com/product/ai)、腾讯云物联网(https://cloud.tencent.com/product/iot)、腾讯云移动开发(https://cloud.tencent.com/product/mobdev)、腾讯云存储(https://cloud.tencent.com/product/cos)、腾讯云区块链(https://cloud.tencent.com/product/baas)、腾讯云元宇宙(https://cloud.tencent.com/product/vr)。

以上是如何在模型A的字段中使用onchange更新模型B中的字段的完善且全面的答案。

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

相关·内容

django 模型计算字段实例

verbose_name='姓') given_name = models.CharField(max_length=20, verbose_name='名') def name(self): # 计算字段要显示在修改页面只能定义在只读字段...(app.PersonAdmin),第二个是这个类管理模型实例(Person) return '%s,%s' % (self.family_name, self.given_name)...name.short_description = '全名' # 用于显示时名字 , 没有这个,字段标题将显示'name' readonly_fields = ('name',) admin.site.register...(Person, PersonAdmin) 补充知识:django如何在 search_fields 包含外键字段 在search_fields中加入一个外键名字是不能查询,要写成(外键名__外键字段名...,而不是电脑分辨率,就可以搜索'手机 分辨率' 以上这篇django 模型计算字段实例就是小编分享给大家全部内容了,希望能给大家一个参考。

4.4K20

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

然而,我们可能需要给定模型字段之间链接。有时,一个字段值是根据其他字段值确定,有时我们希望帮助用户输入数据。...本章目标 在房地产模型,自动计算总面积和最佳报价 预期效果: 在地产报价模型,自动计算合法日期且可被更新 在我们房地产模块,我们定义了生活区和花园区。...自然地我们将总面积定义这两者总和,我们将为此使用计算字段概念,即给定字段值将从其他字段值中计算出来。 到目前为止,字段已直接存储在数据库并直接从数据库检索。字段也可以被计算。...“onchange”机制为客户端界面提供了一种,无论用户合适填写字段更新表单,都无需存储任何东西到数据库一种方法。...始终首选computed field,因为它们也是在表单视图上下文之外触发。永远不要使用onchange将业务逻辑添加到模型

3.1K30

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

否则,它将作为默认值显示在对话框 警告 @onchange 仅支持简单字段名称,不支持并自动忽略点分名称(关系字段字段,比如partner_id.tz) 危险 由于 @onchange 返回伪记录记录集...需要特别注意是,需要更新字段越多,更新速度越慢(笔者实践时发现,但是没验证是否和字段类型有关,特别是关系字段,关系字段更新可能会调用对应模型write方法,该方法如果被重写了,也可能会导致耗时增加...(1, id, values) 使用values字典更新id值为给定id值现有记录。不能在 create()中使用。...and extension) Odoo提供三种不同机制,以模块化方式扩展模型: 从现有模型创建新模型,向副本添加新信息,但保留原始模块 扩展其他模块定义模型,替换以前版本 将模型一些字段委派给它包含记录...# (1, id, values) # 使用 values 字典更新id值为给定 id 值现有记录。

13.2K10

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

模型和基本字段 在上一章末尾,我们创建一个odoo模块。然而,此时它仍然是一个空壳,不允许我们存储任何数据。...api, SUPERUSER_ID 练习 创建estate_property表最小化模型odoo14/custom/estate/models/estate_property.py 定义model...pgAmin查看路径:Servers -> PostgreSQL 12 -> Databases (x) ->数据库名 -> Schemas -> public -> Tables 模型字段(Model...有两大类领域字段:‘简单’字段--直接存储在模型原子值,形如Boolean, Float, Char, Text, Date 和Selection, ‘关系型’ 字段--连接相同或者不同模型记录...自动创建字段(Automatic Fields) 参考: 该话题相关文档可参考 Automatic fields. odoo会在所有model(当然,也可以配置禁止自动创建某些字段)创建少数字段

2.2K30

odoo 权限管理学习总结

(2, ID, values) 使用values字典更新id值=ID现有记录 (2, ID) 删除id=ID这条记录(调用unlink方法,删除数据及整个主从数据链接关系) (3, ID) 删除主从数据链接关系但是不删除这个记录...模型访问权限(Access Rights,表级别) 当模型没有定义任何访问权限时,odoo会认为没有任何用户可以访问数据,并在日志打印: 2022-12-14 09:01:38,994 32508...) ORM字段可以具有提供组列表groups属性(值为逗号分隔组XML ID列表,groups='base.group_user,base.group_system')注意:groups属性值格式...如果当前用户不在列出,他将无权访问该字段: 将自动从请求视图中删除受限制字段 从fields_get()响应删除受限制字段 尝试(显式)读取或写入受限字段会导致访问错误 修改estate...注意:通过为当前视图中目标字段添加groups属性实现权限控制仅作用于当前视图,如果希望当前视图模型(Model)所有视图中,对该字段实现统一权限控制话,需要在模型定义,为目标字段添加groups

10K20

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

在上一章已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受。相反,我们至少应该以逻辑方式组织各个字段。 视图是在带有操作和菜单XML文件定义。...它们是ir.ui.view model实例。 在我们estate模块,我们需要以逻辑方式组织字段: 在列表(树)视图中,我们希望显示不仅仅是名称。 在表单视图中,应该对字段进行分组。...尽管它们适用于特定模型,但它们用于过滤其他视图内容(通常是聚合视图,比如列表). 除了在使用方面的不同,他们定义方式是一样。 搜索视图根元素为。...在odoo,domain对记录上条件进行编码:domain是用于选择模型记录子集条件列表。每个条件都是一个包含字段名、运算符和值三元组。...: A, D, E, '|', B, C 练习 添加定义搜索视图 在合适XML为 estate.property 模型定义一个搜索视图 添加过滤和分组 添加以下内容到之前创建就搜索视图 一个显示avaliable

3.2K40

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

Odoo10 Development Essentials》Chapter5(p106)中介绍了Odoo中分层关系建立。 代码如下 在上面的代码使用字段来关联上层记录。...使用这个属性来开启分层搜索功能. 使用字段来进行记录所属层级,当时看书时候对这些代码不是很理解,只是知道这样做能够提高层级关系数据模型查询数据记录效率。...(递归查询文件夹文件) Odoo为了提高层次结构(树状结构)查询效率,每一条层级数据记录添加跟字段. 假设A是B上级对象。那么存在这样逻辑关系。...Odoo 应用 我们用Odoo11product模块作为演示 在文件.看到产品目录(ProductCategory类.15行起)代码 在Odoo11演示数据,产品目录结构一共有6个 我们查询下数据库数据...要找Saleable下所有子目录即可使用 作为条件 结论: 在Odoo实际使用,发现使用parent存储特性模块主要涉及account, product, stock_location.

2.2K80

iOS开发·KVC:字典转模型,防止因本地未定义字段(后台字段与本地字符串名不一致)导致数据转换过程奔溃

将后台JSON数据字典转成本地模型,我们一般选用部分优秀第三方框架,SBJSON、JSONKit、MJExtension、YYModel等。...笔者KVC系列为: iOS开发·KVC:字典转模型,防止因本地未定义字段(后台字段与本地字符串名不一致)导致数据转换过程奔溃 iOS开发·runtime+KVC实现字典模型转换 1....含有模型未定义属性同名字段字典 字典转模型过程也会遇到一些问题,比如,字典里面有多余keyValue,但是模型没有定义同名属性,使用setValuesForKeysWithDictionary就会崩溃了...含有系统关键字同名字段字典 如上所示,许多JSON数据里面会有一个id字段, 而id是iOS一个关键字,不能用关键字定义属性名,此时我们就需要在model类修改这个属性名字,并在- (void...)setValue:(id)value forUndefinedKey:(NSString *)key方法体重写该方法,以针对id字段作特殊处理。

1.4K20

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

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

1.6K10

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

Python 3, super() 等价于 super(TestModel, self)。当你需要使用一条被修改后结果集调用父方法时,可能需要使用后者。...为此,我们需要向res.users模型添加一个字段,并调整其视图以显示它。 Odoo提供了两种继承机制来以模块化方式扩展现有模型。...第一继承机制允许模块通过以下方式修改在另一个模块定义模型行为: 向模型添加字段 覆盖模型字段定义 给模型添加约束 给模型添加方法 重写模型现有方法 第二种继承机制...(委托)允许将模型每个记录链接到父模型记录,并提供对该父记录字段透明访问。...odoo,第一种机制最常用。在我们例子,我们希望向现有模型添加一个字段,这意味着我们将使用第一种机制。

2.2K20

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

数据文件内容也是在模块安装或者更新时按序加载。因此,对CSV文件所做所有说明对XML文件都适用。...这是因为,在odoo中加载CSV文件比加载XML文件更快。 odoo,用户接口(action,菜单和视图)大部分是通过创建和组装XML文件记录来定义。...Odoo有许多微调方式,但通常第一步是确保: 某些字段有默认值 某些字段只读 当记录重复时,某些字段不能被拷贝 在我们房产业务案例,我们希望:: 售价只读(往后将自动填充) 当记录重复时,可用日期和售价不能被拷贝...我们看到一些属性,required=True,会影响数据库表模式。其他属性也将影响视图或提供默认值。 练习 -- 添加一些属性到字段。...当需要相关行为时,需要在模型定义这些保留字段。 练习 -- 添加active字段 添加一个 active 字段到estate.property 模型

2.8K30

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

模型之间关系(Relations Between Models) 上一章介绍了为包含基本字段模型创建自定义视图。然而,在任何真实业务场景,我们都需要不止一个模型。此外,模型之间链接是必要。...买家可以是任何个人,然而,销售人员必须是房产机构员工(即odoo用户)。 在odoo,有两种我们经常引用两种模型: res.partner: 一个partner为一个物理实体或者法人实体。...然而,在本例,我们希望显示给定地产报价列表,因此我们将使用one2many概念。 one2many是many2one反向实现。...例如,我们通过partner_id字段,在测试模型上定义了到res.partner模型链接。...odoo如何知道我们报价与哪个房产相关?这就是使用odoo框架一部分魔力:有时候事情是隐式定义

4.4K40

odoo wizard界面显示带复选框列表及勾选数据获取

wizard可以通过关系字段(many2one或many2many)引用常规记录或wizard记录,但常规记录不能通过many2one字段引用wizard记录 详细代码 注意:为了更清楚表达本文主题...action_select_records_via_checkbox函数接收args参数,其类型为字典,形如以下,其中f412cde5-1e5b-408c-8fc0-1841b9f9e4de为UUID...,供web端使用,用于区分不同页面操作数据,'estate.property.offer_3'为供web端使用记录ID,'data'键值代表记录数据,其id键值代表记录在数据库主键id,context...以下属性皆在hasCheckBoxes 为"true"情况下起作用。 modelName 点击列表复选框时,需要访问模型名称,需要配合modelMethod方法使用,缺一不可。...以上参数同下文saveSelectionsToSessionStorage 参数可同时共存 如果需要将action绑定到指定模型指定视图Action,可以在ir.actions.act_window定义添加

5.2K60

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

在这篇教程里我们将会了解到 Odoo 模型一些其他类型字段和特殊机制,而我依然会继续带领大家一起完善我们 Todo 应用,不断地往里面添加一些新功能特性,让它看起来更丰满也更实用一些。...选择字段 在上一篇教程,我们已经创建好了待办事项模型,但是只是添加了「描述」和「已完成?」两个字段,这肯定是不能满足我们需求。...priority,并且指定了三个可供选择程度类型,一般情况下,如果一个字段只有固定几种可选值,通常都会选择使用 Selection 字段,它接受一个元组列表作为参数,其中元组组成为 (value...在上一篇教程我们提到过,在对模型进行改动之后,需要对模块进行升级才能看到变更后样子,除了从应用列表中找到模块进行升级外,我们还可以在命令行Odoo 启动命令加上参数 -u todo 指定升级...这篇教程代码同样会更新在我 GitHub 仓库

1.3K10

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

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

70120

Odoo开发指北 01 初识Odoo

继承开发 Odoo提供了大量现成模块给我们使用,但是某些情况下,我们需要制定符合自己需求功能模块。Odoo开发一条黄金准则是——不要修改现有的模块,以免改动后代码与原有模块产生混淆。...然后使用自己模块:把自己模块路径设置到odoo,重启odoo让其搜索到自定义模块,即可通过odoo进行安装。...类,定义出模型类会自动与Odoo提供ORM接口匹配,也就是说这些模型类会自动存入sql。...static:静态资源文件,css、js等 views:网页视图文件与模版文件(xml文件,使用QWEB语言进行描述) init.py manifest.py:描述文件 脚手架命令   使用...Odoo 脚手架 odoo-bin scaffold 命令新建了我们 aaa 应用 …/odoo-bin scaffold aaa 模块开发流程 分析模块模型,得出模型所需字段有哪些,然后定义模型

2.3K30

odoo 开发入门教程系列-安全-简介

安全-简介 前一章我们已经创建了第一个打算用于存储业务数据表。在odoo这样一个商业应用,第一个考虑问题就是谁(Odoo 用户(或者组用户))可以访问数据。...odoo为指定用户组用户提供了一个安全数据访问机制。 更多关于安全主题详细信息可以查看 Advanced B: ACL and Record Rules。本章目标是覆盖我们新模块最小安全需求。...country_id:id 通过使用外部标识指向国家. name 州名称 code 州代码 在 res.country.state model定义了这三个字段 按约定,导入数据文件存放在模块...注意: 按数据文件在__manifest__.py 顺序加载文件数据。这意味着数据A 引用B, 则必须确保B放在A之前。...当模型没有定义任何访问权限时,odoo会认为没有任何用户可以访问数据,并在日志打印: 2022-12-14 09:01:38,994 32508 WARNING odoo odoo.modules.loading

91220

odoo context上下文用法总结

,其中fieldName 表示过滤器名称,即搜索视图中定义、元素name属性值 content 如果fieldName为搜索字段name属性值,那么...--此处代码略...--> 说明:'group_by': '分组字段名称' 用于视图对象按钮,传递数据给模型方法 模型设计 #!...> 说明:context属性值字典键值如果为模型定义字段名称,则该字段名称必须以元素形式,出现在模型对应视图(即不能是内联视图,比如内联Tree列表),否则会出现类似错误提示...> 用于视图关系字段,传递数据给模型方法 模型设计 #!...为可编辑列表视图字段搜索添加查询过滤条件](odoo 为可编辑列表视图字段搜索添加查询过滤条件.md) 用于记录集,传递数据给模型方法 模型设计 #!

2K20
领券