在 odoo 中引入动作按钮(Action Buttons)的主要目的是为了给用户提供一种直观且灵活的方式来执行特定的操作或触发特定的行为。这些按钮可以嵌入到表单视图、列表视图、看板视图等界面中,帮助用户快速完成常见的任务或导航到其他视图。比如在我们的房地产模块中,我们希望执行以下操作:
- 取消或将房产设置为已售
- 接受或拒绝用户报价
虽然可以直接更改字段状态,但这并不符合我们的的操作习惯。
动作按钮类型
在 odoo 中,按钮的 type 属性决定了按钮的行为, type="object" 和 type="action" 是两种常见的按钮类型,它们的主要区别如下:
类型 | object | action |
---|---|---|
触发内容 | 调用模型中的 Python 方法 | 触发 Odoo 动作,如窗口操作、报告生成等 |
应用场景 | 后台业务逻辑处理(例如,更新状态、执行计算等) | 前端操作,如打开视图、执行报表、跳转到其他模型等 |
是否涉及视图跳转 | 不涉及视图跳转,执行方法后通常不改变当前视图 | 通常涉及视图跳转,如打开新的表单视图或列表视图等 |
返回内容 | 返回 True 或 False,表示是否执行成功 | 返回一个窗口操作对象,触发视图跳转或执行动作 |
典型功能 | 更新记录状态、发送邮件、数据计算、字段更新等 | 打开视图、生成报表、过滤数据、执行关联操作等 |