Odoo 开发备忘
持续更新,欢迎补充!
用法实践(Usage)
- 外部图片url,可通过一个 Html 计算字段在 Form 视图展示
- 【注意】继承模型
__init__
中的声明顺序
系统设置(Setting)
- S001: 扩展 res.config.settings ,添加字段属性 config_parameter,可在 Odoo 设置中修改系统参数。
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
appid = fields.Char('AppId', config_parameter='my_module.appid', default='')
secret = fields.Char('小程序 Secret', config_parameter='my_module.secret', default='')
注意 res.config.settings 是瞬态模型,无法持久化存储到数据库,可以通过 related 字段 保存到其他模型的记录中
不符预期
- Odoo16 html 字段如何正确赋值,
r.html_field1 = '<strong>something</strong>' + r.html_field2
前端没有加粗展示。解决方案全部采用f-string方式:r.html_field1 = f'<strong>something</strong>{r.html_field2}'
异常报错(Error)
-
【无法启动】扩展 res.partner 模型,添加字段后无法启动
- 本地开发可在启动时通过参数 -u [模块名] 进行强制升级
- 不方便使用参数时,可1.先注释掉扩展的字段,2.重启后进入应用升级列表页面,3. 再去掉代码注释,4. 重启找到对应模块手动升级。
-
【无法启动】 AttributeError: ‘Integer’ object has no attribute ‘split’
竟然是 @api.depends() 中字段没加引号导致
-
【报错】TypeError(“‘int’ object is not subscriptable”)
- domain 格式错误没有加()
-
【权限】字段无法编辑,关联字段模型未设置权限
-
【不常见】调用Odoo Api 接口报 404错误
创建了多个数据库,未明确指定使用哪个 -
【样式问题】 Error: Invalid CSS after “$*”: expected 1 selector or at-rule, was
scss 中变量结尾没有加分号’;’ -
【异常】AttributeError: module ‘lib’ has no attribute ‘OpenSSL_add_all_algorithms’ 或报错 has no attribute ‘X509_V_FLAG_NOTIFY_POLICY’
cryptography 和 pyopenssl 两个模块不兼容导致,因此降低cryptography 的版本可解决pip install cryptography==38.0.4
-
【报错】‘RequestHandler’ object has no attribute ‘headers’
大坑
- 没权限菜单不显示:记得添加
security/ir.model.access.csv
- Odoo17 开发建议使用 Python 3.11, 12安装包报错