在线编辑器

在线编辑器 视图允许通过浏览器编辑构建的源代码。此外,还可以打开终端、Python 控制台、Odoo shell 控制台以及 Jupyter Notebooks。

在线编辑器概览

您可以通过 分支选项卡、构建下拉菜单 访问构建的编辑器,或在构建的 URL 中添加 /odoo-sh/editor (例如 https://odoo-addons-master-1.dev.odoo.com/odoo-sh/editor)。

编辑源代码

工作目录由以下部分组成:

.
├── home
│    └── odoo
│         ├── src
│         │    ├── odoo                Odoo Community source code
│         │    │    └── odoo-bin       Odoo server executable
│         │    ├── enterprise          Odoo Enterprise source code
│         │    ├── themes              Odoo Themes source code
│         │    └── user                Your repository branch source code
│         ├── data
│         │    ├── filestore           Database attachments, as well as the files of binary fields
│         │    └── sessions            Visitors and users sessions
│         └── logs
│              ├── install.log         Database installation logs
│              ├── odoo.log            Running server logs
│              ├── update.log          Database updates logs
│              └── pip.log             Python packages installation logs

您可以编辑开发和预发布构建的源代码(/src 下的文件)。正式运行构建的源代码为只读,因为在正式运行服务器上直接应用本地更改不是良好实践。

注解

要在编辑器中打开文件,请在文件浏览器面板中双击它,然后即可编辑。保存更改请前往 文件 ‣ 保存,或使用 Ctrl+S 快捷键。

如果在 Odoo 服务器的 addons 路径中保存 Python 文件,Odoo 会检测到并自动重新加载,也就是说更改会立即生效。

对 Python 文件的更改立即生效

然而,如果更改存储在数据库中(如字段标签或视图),则需要更新相关模块才能使更改生效。要更新当前打开文件的模块,请前往 Odoo ‣ 更新当前模块。

使用编辑器更新当前模块

小技巧

您也可以使用以下命令在终端中更新模块:

odoo-bin -u <comma-separated module names> --stop-after-init

提交并推送更改

要将更改提交并推送到您的 GitHub 代码仓库:

  1. 前往 文件 ‣ 新建 ‣ 终端 打开终端。

  2. 将目录切换到 ~/src/user。

cd ~/src/user
  1. 设置身份标识。

git config --global user.email "you@example.com" && git config --global user.name "Your Name"
  1. 暂存更改。

git add
  1. 提交更改

git commit
  1. 推送更改。

git push https HEAD:<branch>
  • https 是您的 HTTPS GitHub 远程存储库的名称(例如 https://github.com/username/repository.git)。

  • HEAD 是对您提交的最新修订版的引用,

  • <branch> 必须替换为要将更改推送到的分支的名称,如果在开发版本中工作,则很可能是当前分支。</branch>

系统会提示输入 GitHub 用户名和密码。输入凭据后按 Enter。

提交并推送更改的命令

小技巧

如果您的 GitHub 账户启用了双因素认证,可以创建 个人访问令牌 并将其作为密码使用。只需 授予仓库权限 即可。

注解

  • 无法使用 SSH 进行身份验证,因为出于安全原因,您的私钥不会托管在构建容器中,也不会通过 SSH agent 转发——您是通过浏览器访问编辑器的。

  • 源代码文件夹 ~/src/user 并未检出到某个分支,而是处于分离的修订版本上。这是因为构建针对特定修订版本而非分支进行,所以同一分支上可以存在多个基于不同修订版本的构建。

更改推送完成后,根据 分支推送行为,可能会创建新的构建。您可以继续在推送时所用的编辑器中工作,因为它的修订版本与新构建相同。但请始终确保使用的是分支最新修订版本对应构建的编辑器。

机

您可以打开 Python 控制台,即 IPython 交互式 shell。使用这些 Python 控制台(而非终端中的 IPython shell)可以利用其 丰富的显示功能 以 HTML 显示对象。

Example

Pretty 类会以易读的格式显示列表。

Pretty 类示例

小技巧

使用 pandas 可以显示:

  • CSV 文件的单元格

    pandas CSV 示例
  • 图表

    pandas 图表示例

您可以打开 Odoo shell 控制台来试验数据库的 Odoo 注册表与模型方法,也可以直接对记录进行读取或写入。

警告

在 Odoo shell 控制台中,事务会自动提交,这意味着对记录所做的更改会立即应用到数据库。例如,如果修改了某用户的姓名,该数据库中的记录也会同步更新。因此,在正式运行数据库上使用 Odoo shell 控制台时要格外谨慎。

您可以使用 env 调用数据库注册表中的模型,例如 env['res.users']。

env['res.users'].search_read([], ['name', 'email', 'login'])
[{'id': 2,
'login': 'admin',
'name': 'Administrator',
'email': 'admin@example.com'}]