Alan Hou的个人博客

Odoo常见问题汇总

关于Odoo最常被问到的问题

001、Odoo 免费吗?

Yes and no,Odoo 和国外大多数的软件套路相同,这可能也是大部分软件保持稳定发展的前提,那就是社区版与企业版并行。为保证软件社区活跃,主体源代码对外开放,称之为社区版(Community Edition);为实现盈利,追加服务和扩展功能,进行收费并称之为企业版(Enterprise Edition)。Odoo 自然也是同一套路,所以其社区版代码对公众开放,也即大家所认为的免费,所以这个层面 Odoo 社区版是免费的。说到这里,一直以来其实国外之所谓 Free 基本是指自由而非免费,即可以在遵循协议的前提下可自由对源代码进行编辑并传播。

那么关于企业版,它自然是收费的,也不尽然,Odoo 官网上的销售模式是按照 App 进行收费的,但如果只安装一个 App 实际上也是免费的。

再说回社区版,是不是使用它就不用支付任何费用呢?显然也不是,服务器得自己掏钱,部署和后续维护甚至是二次开发这些都需要人工费用。

002、Odoo 企业版如何破解或如何下载企业版源码?

Odoo 的企业版源码应该是托管在 GitHub 私有仓库上,需要授权才可下载。官方合作伙伴和购买者才可获取权限。

Odoo 遵循的是 LGPL 协议,当然 Alan 不会去阅读原协议进行求证,但江湖上说这样协议允许在其基础上开发并售卖源代码,所以既然是可售卖的商品,代码也就受到法律保护。破解是要承担法律责任的,有人说我就是有极客精神想要研究下企业版代码呢?听说市面上确实有人在兜售企业版源码,但不要问我,Alan 一个也不认识。

还有朋友问Odoo的企业版代码如何移植到社区版,Odoo的企业版本身就是构建于社区版之上,本质上就是社区的一系列插件,所以不存在什么移植,加入到 addons_path中便完成了企业版的集成。

003、Odoo是什么语言开发的?

Odoo 的后端代码全部由 Python 进行编写,Odoo 10及之前的版本使用 Python 2进行开发,而从 Odoo 11开始使用 Python 3。当前的稳定版本 Odoo 12似乎对 Python 3.7的支持还不是很完善,因此建议使用 Python 3.6。而Odoo的前端使用的 JavaScript 以及自己独有的模板引擎 Qweb。

Odoo 每年定于10月份发布一个大版本,通常认为单号版本通常认为是bug 修复和小步迭代,双号版本会有一些更为开拓性的功能迭代。

日常使用类问题

001、Log note(Internal Note)如何删除或修改?

Odoo 中并没有直接修改Note 的方法,需在 debug 模式进入 Settings>Technical>Email>Messages 进行修改

002、忘记后台登录密码

003、Malformed ‘Return-Path’ or ‘From’ address: ‘XXX <False>’ – It should contain one valid plain ASCII email

测试发现在重置密码时出现,在Settings > User & Companies > Companies 下为公司账号设置 email 字段。

 

开发类错误处理

001、odoo-bin: error: option –addons-path: The addons-path ‘custom-addons’ does not seem to a be a valid Addons Directory!

此报错因custom-addons中没有任何模块,可以添加模块,或加入基础代码,如进入custom-addons目录

002、Exception in thread odoo.service.httpd:

OSError: [Errno 98] Address already in use

查找是否已存在Odoo进程并结该进程

003、ImportError: No module named ‘web’

检查 addons 目录是否正确,通常配置的问题,GitHub 上下载的请使用根目录下的 addons 文件夹,而不要使用odoo/addons/

版本类问题

001、Invalid field ‘view_type’ on model ‘ir.actions.act_window’

Odoo 13开始删除了 view_type,不再需要写如下的代码

002、Exception: @api.one, @api.multi

报错示例

@api.one于 Odoo 12中去除,使用@api.multi 和 self.ensure_one()进行代替,在 Odoo 13中直接去除了@api.multi,因其是默认值,无需再单独添加这一装饰器,所以直接在代码中去除掉即可。

 

其它问题

001、Odoo能否取代Django?

个人认为两者不太具备可比性,虽说 Odoo 在某种程度上也是一种框架,但它限定了领域,提供了丰富的预置功能:如网站、CRM、电商、项目管理等等,是一套基于 ERP 发展起来的系统,并且这是一个商业项目,有企业版提供更为丰富的功能。 Odoo 主要优势在于其满足了通用需要的内置及第三方应用,

Django 是一个纯 Python 框架,通常被人们拿来对标的不是 Odoo 而是 Flask。Flask 是更为轻量的框架,两者都非常适合用来做 Web编程和 API 开发,只是 Django 内置了权限系统和一些基础功能,某种程度上来说是一个安装了各种插件后的 Flask。

所以 Odoo 会取代 Django 吗?个人觉得不会,就像 Django 和 Flask 满足了不同的需求一样,Odoo 和 Django 的差别则更大,就框架本身而言,Odoo 比 Django 重,Django 比 Flask 重。轻量的灵活性不是重度应用说取代就取代的。Odoo 的好处是“大而全”,但如果想要建立专业度很高的电商网站或是非常小型的门户网站,我个人大概率上会选择 Django 而非 Odoo,前者因为 Odoo 不及 Django灵活,后者因为 Odoo 不及 Django轻量。另外在数据库层面上,Odoo部分功能强依赖于 PostgreSQL,不存在其它选项,Django在这个层面上则是更彻底的框架思维,可以使用轻量级免安装的 Sqlite,也可以使用 MySQL, PostgreSQL等数据库。

002、Odoo xx/社区版够用吗?

这应该不是个完整的问题,Odoo 够不够用完全取决于其内置及应用市场中的 APP 能否满足你的业务需要,脱开业务场景谈这个问题缺少立足点。Odoo 本身显然是无法满足到你的特殊需求的,就像光有一个 iPhone 手机无法满足你的社交、娱乐需求而对打电话等功能则进行了内置,因此 Odoo 的生态里有应用市场并且因其代码开源对于有技术实力的公司还可以进行二次开发。当然,Odoo 内置的功能显然要相较 iPhone 更多。

003、Odoo 13/14/15 为什么没有Document模块?

Odoo的这些版本并未移除文档模块,像是甘特视图等一样,这些功能只在企业版中可用。对于只希望使用社区版的,大部分功能可以先去 OCA 查看一下,很多已经有人进行了实现,可以不做修改或只做很少的修改就能使用,文档管理请参见:https://github.com/OCA/dms。

退出移动版