Skip to content

Odoo服务器动作使用指南

敲黑板

服务器动作是非常有用的几大功能之一,是用户、实施工程师、开发工程师都应该掌握的技能!

什么是服务器动作?

先甭管服务器动作是什么,定义不会影响你的学习效果,等你掌握了它的用法,也许就不关心这个名字了。

不过你要知道服务器动作的菜单:设置 / 技术 / 操作 / 服务器操作

我们先通过一个最简单的案例看看服务器动作有什么用。

案例:批量更新客户的销售员

创建一个服务器动作。

  • 起一个清楚的名字,例如:更新销售员为张三
  • 类型:更新记录
  • 模型:选择联系人 (选择对模型是有技巧的,这里面涉及翻译不全、翻译不到位等情况,后面单独写一个文档来详细说说)
  • 允许的群组:先留空
  • 动作详情:更新后面的空,选择 销售员,再后面的空,选择 张三
  • 点击左上角的“添加上下文动作”

看到这里,我知道你想给我提个建议,截个图多好,你看起来一目了然,我也不用敲那么多字。嗯,好的(你提你的,我做我的)。

在联系人列表,刷新一下页面,选择三两个联系人,看看动作菜单下是不是多了一个“更新销售员为张三”,点一下试试。🎉

另一种实现方式

批量更新客户的销售员这个场景,可以在客户列表视图上选中多条记录,点击所选记录中某条记录的销售员,更改之后系统会提示是否同时将其他所选的客户的销售员一并更改,确定即可。

同样的功能,我们换种类型,用执行代码来完成。

还是上面创建的那个动作,切换类型之后,下面的动作详情就变成了可输入代码的框(自带的那些可用变量,你现在可以忽略掉),输入下面的代码:

python
person = env["res.users"].search([("name", "=", "张三")])
if len(person) == 1:
    records.write({"user_id": person.id})

上面的python代码是服务器动作被称为“非常有用”的关键所在。理论上讲,代码写的越复杂,能做的事情越多,用处越大!