CATEGORY FOCUS

Odoo 开发

聚合 Odoo 开发基础、源码理解、ORM、模型、视图、安全与扩展实践。

311 篇文章 3116 累计阅读 当前排序:专题优先

TOPIC PICKS

这个专题的推荐入口

可以顺着继续读的相邻方向

safe_eval 边界

Odoo 的 safe_eval 不是把 Python 关进笼子:server action 表达式沙箱与真实边界

很多人把 safe_eval 理解成“绝对安全的 Python 执行器”,但 Odoo 19 更准确的做法是受限求值:它限制可用 builtins、校验字节码、控制求值上下文,再把 server action 的 env、model、record、records、log 等对象显式喂进去。它很有用,但绝不是万能隔离层。

Odoo 开发 框架
进阶 开发者 2 分钟阅读 0 评论 0 收藏 7 阅读
继续阅读 →
x2many 权限边界

Odoo 的 x2many 命令为什么不是 sudo 了就能随便改:_allow_sudo_commands 与真实执行用户边界

很多人以为给 recordset 套上 sudo() 或 with_user(admin) 之后,one2many / many2many 的 Command 就一定能通过。Odoo 19 实际专门给 x2many 命令加了一层防线:当目标模型声明 _allow_sudo_commands=False 时,框架会主动撤销这类提权写法,重新按事务原始用户做权限检查。

Odoo 开发 框架
进阶 开发者 2 分钟阅读 0 评论 0 收藏 7 阅读
继续阅读 →
记录规则

Odoo 权限不是“ACL 再加个 rule”这么简单:记录规则域合并、组 OR 与访问校验边界

很多开发者把 Odoo 权限理解成“两层门”:先看 ACL,再看 record rule。但从 ir_rule.py 的 _compute_domain 和 models.py 的 _check_access 看,系统实际做的是“先判模型权限,再把全局规则、组规则、继承模型规则合成一个 domain,最后对真实记录集做过滤和报错”。

Odoo 开发 框架
进阶 开发者 2 分钟阅读 0 评论 0 收藏 7 阅读
继续阅读 →
销售行边界

Odoo 销售行里的 display_type 为什么不是“排版字段”:section / note / down payment 如何绕开交付与开票计算讲透

很多人看到 sale.order.line 里的 display_type,会下意识把它理解成报价单上的 section 和 note 排版辅助。可一旦把它和 is_downpayment、qty_to_invoice、invoice_status 放在一起看,就会发现它其实定义了“哪些行参与业务计算、哪些行只负责结构呈现”的硬边界。本文结合 sale_order_line.py 把这条边界讲透。

Odoo 开发 销售
进阶 开发者 1 分钟阅读 0 评论 0 收藏 7 阅读
继续阅读 →
上一页 第 20 / 52 页
下一页