简化Python代码中onchange执行的技术模块
项目描述
这是一个技术模块。其目标是简化直接从Python代码中调用onchange方法。
目录
使用方法
要使用此模块,您需要
依赖于此模块
调用 yourmodel.play_onchanges(values, ['field'])
例如,如果您想创建一个销售订单并获取与partner_id字段相关的值(就像您从UI中填写字段一样)
vals = {'partner_id': 1}
vals = self.env['sale.order'].play_onchanges(vals, ['partner_id'])
然后,vals将更新为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'])
vals将包含更改的值以及date_order的默认值
您也可以将其应用于现有记录,例如
vals = {'partner_shipping_id': 1}
vals = sale.play_onchanges(vals, ['partner_shipping_id'])
然后,将使用传递的vals和现有的销售vals来播放onchange。 vals将更新为partner_invoice_id、pricelist_id等...
幕后,play_onchanges 将执行已注册给变更字段列表的所有方法,因此您无需手动调用每个onchange。为了避免在记录上调用方法时出现性能问题,在调用注册方法之前,将记录转换为内存记录,以避免在通过onchange将值分配给记录时触发SQL更新命令。
注意
onchange_fields中的顺序非常重要,因为onchange方法将按此顺序执行。
如果在vals中使用内存对象,请注意,在基础模型中调用的onchange方法将调用self.invalidate_cache()来重置它。
错误跟踪器
错误在GitHub Issues上跟踪。如果遇到问题,请检查是否已报告该问题。如果是您首先发现的,请通过提供详细且受欢迎的反馈来帮助我们解决问题。
请不要直接联系贡献者寻求支持或帮助解决技术问题。
致谢
贡献者
Guewen Baconnier <guewen.baconnier@camptocamp.com>
Florian da Costa <florian.dacosta@akretion.com>
Andrea Stirpe <a.stirpe@onestein.nl>
Souheil Bejaoui <souheil.bejaoui@acsone.eu>
维护者
本模块由OCA维护。
OCA,即Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并促进其广泛使用。
本模块是GitHub上的OCA/server-tools项目的一部分。
欢迎您贡献。要了解如何贡献,请访问https://odoo-community.org/page/Contribute。
项目详情
odoo14_addon_onchange_helper-14.0.1.0.3-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 785866e4d0daa5efddbd39db54785bbba49730ad102b3d3a7ac07af3ffa9a75d |
|
MD5 | 4342b55ad93e548c38baef36092c132b |
|
BLAKE2b-256 | e8102c415c43ff88fef4321c6e8686bc2c3d6e0c04f12416d48f8172e56c2e9f |