Odoo服务器动作使用指南
敲黑板
服务器动作是非常有用的几大功能之一,是用户、实施工程师、开发工程师都应该掌握的技能!
什么是服务器动作?
先甭管服务器动作是什么,定义不会影响你的学习效果,等你掌握了它的用法,也许就不关心这个名字了。
不过你要知道服务器动作的菜单:设置 / 技术 / 操作 / 服务器操作
我们先通过一个最简单的案例看看服务器动作有什么用。
案例:批量更新客户的销售员
创建一个服务器动作。
- 起一个清楚的名字,例如:更新销售员为张三
- 类型:更新记录
- 模型:选择联系人 (选择对模型是有技巧的,这里面涉及翻译不全、翻译不到位等情况,后面单独写一个文档来详细说说)
- 允许的群组:先留空
- 动作详情:更新后面的空,选择 销售员,再后面的空,选择 张三
- 点击左上角的“添加上下文动作”
看到这里,我知道你想给我提个建议,截个图多好,你看起来一目了然,我也不用敲那么多字。嗯,好的(你提你的,我做我的)。
在联系人列表,刷新一下页面,选择三两个联系人,看看动作菜单下是不是多了一个“更新销售员为张三”,点一下试试。🎉
另一种实现方式
批量更新客户的销售员这个场景,可以在客户列表视图上选中多条记录,点击所选记录中某条记录的销售员,更改之后系统会提示是否同时将其他所选的客户的销售员一并更改,确定即可。
同样的功能,我们换种类型,用执行代码来完成。
还是上面创建的那个动作,切换类型之后,下面的动作详情就变成了可输入代码的框(自带的那些可用变量,你现在可以忽略掉),输入下面的代码:
python
person = env["res.users"].search([("name", "=", "张三")])
if len(person) == 1:
records.write({"user_id": person.id})上面的python代码是服务器动作被称为“非常有用”的关键所在。理论上讲,代码写的越复杂,能做的事情越多,用处越大!