Odoo的五类动作

Odoo框架的五类动作介绍
本文介绍了Odoo框架中的五种动作:服务器动作(包括菜单和动作)、客户端动作(包括菜单和动作)、URL动作,通过实例解析了每种动作的用途和配置方式,帮助理解如何在Odoo中快速实现业务功能。

odoo框架中设置了五类动作可以快速实现业务功能

有能力的同学可看官方文档:https://www.odoo.com/documentation/10.0/reference/actions.html

官方文档的说明很无聊,不喜欢看!我想写几个栗子给大家说明一下:右边边画个彩虹
在这里插入图片描述
服务器动作和客户端动作的写法很相似,服务器动作py代码即可实现,客户端动作需要js配合完成。
一、服务器动作
1.服务器动作-菜单(下面这种写法的菜单出现在删除、导出菜单的位置, 也可以使用普通的菜单menu)


版本比较
client_action_multi
action
lims.dvp.project


Id: 服务器动作的外部识别ID model:ir.values 固定
model_id: 动作出现在哪个模型上,格式:模块名.model_模型名
name: 动作的显示名称
key2: client_action_multi, 固定值
key: action 固定值
model: 模型名,_name属性的值
value: ‘ir.actions.server’ + str(ref(服务器动作的外部id))
2.服务器动作-动作(动作要写在菜单前面,菜单指向一个动作,动作要在菜单之前加载)

版本比较

ir.actions.server
code
action=records.select_proj_history_version()

id : 动作的外部id model:ir.actions.server 固定值
name: 动作

### Odoo 18 中缺失动作的可能原因及解决方案 在 Odoo 18 的开发过程中,如果遇到动作Action)缺失的情况,可能是由于多种因素引起的。以下是可能导致此问题的原因以及相应的解决方法: #### 1. 动作未正确定义或注册 Odoo 使用 `ir.actions` 类型的动作来控制视图的行为和导航逻辑。如果动作未被正确定义,则可能会导致无法加载对应的功能。 - **检查动作配置文件** 确认 XML 配置文件中是否已正确声明动作及其关联的模型[^1]。例如: ```xml <record id="action_todo_task" model="ir.actions.act_window"> <field name="name">Todo Tasks</field> <field name="res_model">todo.task</field> <field name="view_mode">tree,form</field> </record> ``` - 如果缺少必要的字段(如 `name`, `res_model`, 或 `view_mode`),则会导致动作不可用。 #### 2. 权限不足 即使动作已经定义好,但如果用户的访问权限不匹配,也可能看不到相应功能。 - **验证安全规则** 检查 `security/ir.model.access.csv` 文件中的权限设置是否允许当前用户执行操作[^1]。例如: ``` access_todo_task,todo.task,model_todo_task,group_user,1,1,1,1 ``` 上述示例赋予了指定群组对 `todo.task` 模型的读、写、创建和删除权限。如果没有适当分配这些权限,某些动作可能不会显示给特定用户。 #### 3. 数据库同步问题 当模块安装或升级时发生错误,数据库内的数据可能未能成功更新,从而引发动作丢失的现象。 - **排查 XML 错误** 若存在语法或其他技术性问题,模块升级会失败并留下残缺状态[^2]。建议查看服务器日志定位确切位置,并修正相关代码后再尝试重新部署。 - **强制刷新缓存** 执行以下命令清理客户端和服务端缓存以确保最新改动生效: ```bash odoo-bin --update=all -d your_database_name ``` #### 4. 外部标识符冲突 每个动作都需要唯一的外部标识符 (External Identifier),用于唯一识别它在整个系统里的角色。如果有重复或者命名不当的地方也会干扰正常运行流程。 - **确认唯一性** 对照官方文档说明了解如何合理规划自己的 external ids 结构[^3]。比如上面提到的例子,“library_app.action_library_book”,其中 library_app 是所属应用名称而 action_library_book 则代表具体行为描述部分。 通过以上分析可以发现造成odoo项目里边出现所谓‘missing actions’现象背后隐藏着诸多潜在隐患;针对不同场景采取针对性措施往往能够有效解决问题根源所在。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值