在python代码中简化onchange执行的技术模块
odoo12-addon-onchange-helper的Python项目详细描述
这是一个技术模块。它的目标是简化从python代码直接调用onchange方法的过程。
目录
Usage
要使用此模块,您需要:
- 取决于此模块
- 调用您的模型。播放更改(值,['field'])
例如,如果要创建销售订单,并且要获取与合作伙伴id字段相关的值(就像从ui填写字段一样)
vals = {‘partner_id’: 1}
vals = self.env[‘sale.order’].play_onchanges(vals, [‘partner_id’])
然后,VAL将更新为Partner_Invoice_ID、Partner_Shipping_ID、Pricelist_ID等。
如果未在vals中设置相应的字段,则将使用默认值处理onchange方法。 如果在字段列表中传递字段名,则可以获取它们。
vals = {‘partner_id’: 1}
vals = self.env[‘sale.order’].play_onchanges(vals, [‘partner_id’, ‘date_order’])
VAL除了更改的值外,还将包含日期顺序的默认值
您也可以在现有记录上使用它:例如:
vals = {‘partner_shipping_id’: 1}
vals = sale.play_onchanges(vals, [‘partner_shipping_id’])
然后用VALS和现有的VAL进行Onchange。VAL将使用合作伙伴发票ID、价格表ID等进行更新。
在场景后面,play\u onchanges将执行为已更改字段列表注册的所有方法,因此不必手动调用每个onchange。为避免在对记录调用方法时出现性能问题,在调用已注册的方法之前,记录将转换为内存记录,以避免在onchange为记录分配值时触发sql updates命令
注意:
- onchange_字段中的顺序非常重要,因为onchanges方法将按此顺序播放。
- 如果在vals中使用memory对象,请授予重置该对象的基模型调用中的onchange方法。
Credits
Contributors
- guewen baconnier<;guewen.baconnier@camptocamp.com>;
- 弗洛里安达科斯塔florian.dacosta@akretion.com>;
- 安德烈亚斯蒂尔佩a.stirpe@onestein.nl>;
- souheil bejaoui<;souheil.bejaoui@acsone.eu>;
Maintainers
此模块由OCA维护。
oca,或odoo社区协会,是一个非营利性组织 任务是支持odoo特性和 促进其广泛应用。
这个模块是github上OCA/server-tools项目的一部分。
欢迎您的贡献。要了解如何访问https://odoo-community.org/page/Contribute。