出库时的 stock.move.line 是如何确定的
用通俗但不失源码细节的方式,讲清楚 Odoo 出库时 stock.move.line 的生成逻辑:从 stock.move、stock.quant、移除策略到 lot/serial 拆行。
CATEGORY FOCUS
聚合 Odoo 开发基础、源码理解、ORM、模型、视图、安全与扩展实践。
TOPIC PICKS
用通俗但不失源码细节的方式,讲清楚 Odoo 出库时 stock.move.line 的生成逻辑:从 stock.move、stock.quant、移除策略到 lot/serial 拆行。
很多开发知道 manifest 里能写 pre_init_hook、post_init_hook、uninstall_hook,但经常不知道它们究竟在模块安装升级的哪一步执行。本文结合 loading.py 源码,把模块加载顺序讲清楚。
很多人知道 Odoo 有事务,却常把 commit、rollback、savepoint 混成一团。本文结合 sql_db.py 和官方常见用法,讲清“整单回滚”和“局部回滚”到底差在哪。
很多人知道 Odoo 里 create 可以批量创建,却没真正理解 @api.model_create_multi 在保护什么。本文结合官方 ORM 源码,讲清它和批量语义、默认值传播、重写姿势之间的真实关系。
很多人会写 XML 视图,却不清楚同一个 view 为什么到了不同用户、语言或移动端会长得不一样。本文从官方源码讲清 Odoo 在 get_view 之后如何做后处理、权限裁剪、modifiers 生成与缓存。
Odoo 里有一类字段看起来像能指向任意模型,但它们并不像 Many2one 那样由数据库外键保护。本文从官方源码讲清 Reference 与 Many2oneReference 的存储方式、适用场景与风险边界。
Odoo 里不少业务单号不是纯黑盒序列,而是建立在 sequence.mixin 上的“可编辑编号”机制。本文从官方源码讲清它为什么既允许改号,又要拼命守住唯一性和日期一致性。