出库时的 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 拆行。
看懂 purchase.order.button_confirm、purchase_stock._create_picking 和 _run_buy,理解采购如何驱动收货与补货。
结合 calendar.recurrence 与 calendar_event 源码,讲清 Odoo 为什么只给每条 recurrence 挂一个 trigger,如何选择未来最近实例、更新 trigger_id,以及拆分/截断循环后提醒为什么会跟着重排。
结合 auth_totp_mail 与 auth_timeout 源码,讲清 Odoo 邮箱验证码如何用 login_date 派生密钥、小时窗口验证、发送/校验双限流,以及在会话重认证中如何和 password / TOTP 协作。
从 stock.move._action_assign、_update_reserved_quantity 到 _action_done 和 _create_backorder,理解 Odoo 库存是怎样从“可用”变成“已完成”的。
`ir.rule` 的计算域是缓存过的,而缓存键里最关键的上下文之一就是 `allowed_company_ids`。这就是为什么切换公司后,权限结果会变。
从 `ir.ui.view.apply_inheritance_specs()` 和 `_combine()` 讲清 Odoo 为什么会出现“XPath 写对了却没生效”。