Odoo 权限不是一把锁:ACL、record rule、组可见性和 sudo 的完整分层
把 ir.model.access、ir.rule、视图 groups 和 sudo 放到一张图里,解释谁管模型、谁管记录、谁只是隐藏界面。
ARTICLE LIBRARY
持续记录源码理解、业务流程、模块开发经验与踩坑总结。
把 ir.model.access、ir.rule、视图 groups 和 sudo 放到一张图里,解释谁管模型、谁管记录、谁只是隐藏界面。
从 stock.move._action_assign、_update_reserved_quantity 到 _action_done 和 _create_backorder,理解 Odoo 库存是怎样从“可用”变成“已完成”的。
从 purchase.order.button_approve、_create_or_update_picking 到 _prepare_qty_received 和 receipt_status,讲清采购、收货、退货与发票之间的连接。
解释 global rule、group rule、domain_force 和 _compute_domain 的组合方式,理解为什么同一个模型不同用户会看到不同的数据边界。
从 ir.ui.view 的 inherit_id、mode、_compute_invalid_locators 和 _check_xml 讲清楚,为什么一个 xpath 写错会让整张视图校验失败。
从 `account.move._compute_date()` 看 Odoo 如何把 invoice_date、date 和 line_ids.date 绑在同一条重算链路上。