原文地址
取决于要实现的案例,有多种方式来安装odoo,对于odoo开发者和odoo的员工来说,最好的办法 是安装odoo的源码(从odoo源码来运行dooo)
首先,按照指南中关于环境搭建的章节来准备你的环境。
重要提醒:
下面的步骤仅仅针对odoo员工,其中提到的仓库并不对第三方开放。
这段章节是针对odoo员工的,所以略过略。
一旦odoo所有的依赖都安装,Odoo可用通过odoo-bin来运行,odoo-bin是服务区的命令行接口。
$ cd $HOME/src/odoo/
$ ./odoo-bin --addons-path="addons/,../enterprise/,../technical-training-sandbox" -d rd-demo
有很多命令行的参数你可以用,不过在这篇教程中你只需要下面几个
-d
要使用的数据库
–addons-path
用逗号分隔的目录列表,里面存储了odoo模块,这些目录将被扫描来查找模块
–limit-time-cpu
–limit-time-real
处理一个请求的最长时间,超时的话,请求会被kill,至于二者有啥区别,我不太清楚:(
小技巧
你可能会碰到类似的错误: module '' has no attribute '<$ATTRIBUTE'>. 这种情况下, 你需要重新安装模 $ pip install --upgrade --force-reinstall .
如果这个错误在多个模块上出现,你需要重新安装所有的依赖
$ pip install --upgrade --force-reinstall -r requirements.txt.
你也可以清空python的缓存来解决这个问题
cd $HOME/.local/lib/python3.8/site-packages/
find -name '*.pyc' -type f -delete
其他常用的参数是:
-i: 运行odoo服务前安装某些模块,(用逗号分隔的的列表)
-u: 运行odoo服务前升级某些模块,(用逗号分隔的的列表)
通过浏览器打开 http://localhost:8069/ . 我们建议使用 Chrome, Firefox, 或者其他带有开发工具的浏览器。
用管理员账户登录系统:
admin
admin
开发者或者debug模式非常有用,它给了我们一些额外的高级的工具。在后面的章节中,我们将始终假设你开启了开发者模式。
Enable the developer mode now. 选择一种你喜欢的方法,他们效果是相同的。
扩展阅读:
开启开发者模式的几种方法:
通过来激活开发者模式(至少安装了一个模块才会出现这个界面)
Activate the developer mode (with assets) is used by developers;
这种模式下js没有被压缩,可用读懂
Activate the developer mode (with tests assets) is used by developers and testers.
这种模式,,,, I dont know
通过浏览器安装一个叫“Odoo Debug
”的扩展工具,安装完之后,浏览器工具栏会出现一个新的图标
在odoo总按ctrl+k 打开命令选项板,然后输入type可用激活开发者模式。
经我在odoo16社区版测试,选项板可用打开,但是找不到debug这个指令。
在浏览器地址栏中/web?后面第一个参数debug, 设置成1或者true就激活了开发者模式,设置为0或者不设置则取消了开发者模式,这个比较好玩。
?debug=assets
enables the assets mode, and ?debug=tests
enables the tests mode.
在每天的工作中,这里有些常用用的git命令
cd $HOME/src/odoo
$ git switch 16.0
$ cd $HOME/src/enterprise
$ git switch 16.0
Fetch and rebase:
$ cd $HOME/src/odoo
$ git fetch --all --prune
$ git rebase --autostash odoo/16.0
$ cd $HOME/src/enterprise
$ git fetch --all --prune
$ git rebase --autostash enterprise/16.0
如果你用Odoo工作,你的很多同行会用VSCode,VSCodium(开源版),PyCharm或者Sublime Text。 你可用选择你喜欢的编辑器。
正确的配置你的语法检查器linter是很重要的。 使用一个语法检查器可用帮助你显示语法和语义上的警告或者错误。Odoo代码尝试满足python和JavaScript的标准,但是其中的一部分会被忽略:
python: 我们使用PEP8,但是下面的选项会被忽略
E501
: line too longE301
: expected 1 blank line, found 0E302
: expected 2 blank lines, found 1JavaScript,我们使用ESLint,你可用从这里找到配置文件的例子 configuration file example here.
可用使用命令行工具psql或者GUI工具如 pgAdmin 或者DBeaver
使用GUI工具连接数据库我们推荐使用Unix socket:
/var/run/postgresql
5432
$USER
注:数据库的用户名要和系统的用户名同名才行。
当解决一个bug或者尝试理解代码是如何工作的,简单的打印一些信息可能要花费很长时间,但是适当的调试器可用节省很多时间。
你可用使用经典的python调试器pdb,pudb或者ipdb, 或者你可用用你的编辑器的调试器。
下面的例子我们使用ipdb,使用方法跟其他的工具类似
1安装库:
pip install ipdb
2 设置一个断点
import ipdb; ipdb.set_trace()
例如:
def copy(self, default=None):
import ipdb; ipdb.set_trace()
self.ensure_one()
chosen_name = default.get('name') if default else ''
new_name = chosen_name or _('%s (copy)') % self.name
default = dict(default or {}, name=new_name)
return super(Partner, self).copy(default)
这里是一个命令列表:
略(基本用不到,一般情况都使用集成的调试器。)
pycharm用的是pydev。