它像 Odoo Studio 吗?¶
评估本插件时常见的一个问题。以下是简短、自成一体的回答。
它像 Odoo Studio 吗?¶
部分是的。本插件直接在实例/数据库中做Studio 风格的低代码改动(添加一个 字段、调整一处视图、自动化一个简单动作),在 Community 或 Enterprise 上都 可以,而无需 Studio 应用(它是 Enterprise 专属的)。对于常见的低代码场景, 这种对等性是真实的,而这些场景正是大多数"帮我加个这个就行"请求的本质。
它把代码写入仓库还是数据库?¶
写入数据库。和 Studio 一样,这些定制会作为 Odoo 记录保存在实例中,而不是 作为仓库中的模块代码。它们像手动定制一样在升级中保留下来。
它能在 Community 上运行吗?¶
能。Studio 是 Enterprise 专属的,但它产生的记录(字段、视图、自动化)都是普通
记录。本插件通过 RPC 创建它们,因此你在 Community 上也能获得相同的成果,
而无需许可证。注意:在 Enterprise 中,这里创建的东西不会出现在 Studio 编辑器
里(它没有被标记为 web_studio),但在运行时表现相同。
每类改动存放在哪里?¶
| Odoo Studio | 本插件(RPC) | 模块开发 | |
|---|---|---|---|
| 编辑方式 | 仅 Enterprise | Community 和 Enterprise | 任意 |
| 存储 | 实例/数据库中的记录 | 实例/数据库中的记录 | 仓库/模块中的代码文件 |
| 字段 | 可视化编辑器 | odoo_add_field(手动 x_ 字段) |
模型中的 Python 字段 |
| 视图 | 可视化编辑器 | 对 ir.ui.view 用 odoo_create(继承 xpath) |
模块中的 XML |
| 自动化 | 可视化编辑器 | odoo_add_automation(safe_eval 服务器动作) |
ir.actions.server / 真实代码 |
| 之后可在 Studio 界面中编辑 | 是 | 否(运行方式相同,只是没有 Studio 标记) | 否 |
它能替代模块开发吗?¶
不能。对于小型、低代码的事情,它省去了整个模块的工作量;但它不能替代严肃的 开发:打包的插件、迁移、自动化测试、复杂的业务逻辑,或任何必须置于版本控制中的 东西。若需要这些,请构建一个模块。本插件是用于那些小而快的事情的。
那 Odoo online/SaaS 中的 safe_eval 呢?¶
自动化在服务器端于 Odoo 的 safe_eval 下运行:没有 import、def、class、
return、with,也不能用下划线或双下划线访问。在 Odoo online/SaaS 中,
这一点会被严格强制执行。odoo_add_automation 会在发送之前校验你的 Python
代码,并以清晰的修正建议拒绝被禁止的结构。细节与配方见
低代码定制。