出库时的 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 拆行。
很多人把 fields_get 当成表单元数据接口,但官方源码里它还会先过滤字段读权限,再根据写权限改写 readonly 结果。本文讲清 fields_get 为什么会直接影响前端看到什么、能不能改什么。
看到 @api.autovacuum,很多人会把它当成 cron 的简写版。可官方源码里的设计重点其实是统一收集、随机调度、分段提交进度,以及单个清理任务失败时的隔离回滚。本文讲清它适合做什么,不适合做什么。
很多人看到 search_fetch 会把它理解成 search_read 的另一个名字,但官方源码里它更像 search 与 fetch 的拼接层:先拿到满足 domain 的 query,再把指定字段灌进缓存。本文讲清它和 search、read、search_read 的分工边界。
很多人知道 Odoo 会把 utm_source、utm_medium、utm_campaign 带进线索或表单,但经常只把它理解成前端埋点。本文结合官方源码讲清 utm.mixin 如何从 URL 参数写 Cookie,再在 default_get 时落到业务记录字段上。
很多 Odoo 开发天天写 self.env,却常把 env、registry、cursor 混成一团。本文结合官方 ORM 源码,讲清三者分别负责什么、为什么 env 不是“全局单例”。
Odoo 的物料消耗策略不是一个小开关,它会决定 MO 关单时怎么比对理论用量、实际领料以及额外行。本文把 consumption methods 讲清楚。