Action原理

由此开始...

原理:什么是 Action?

首先,

         让我们来看看,大家知道的客户端給服务端传参数的方式只有很少的几种:

         1. URL 网址后跟参数;

         2. Post 请求传参;

         3. Header 中传参(例如 Cookie);

 

         ODOO 架构在设计的时候,选择了最简单、可见的传参方式,即直接在 URL 中进行参数传递。

         当我们访问一个 URL 时,我们直接在 URL 后面,跟上 ODOO 所能识别的参数,例如:Action、Model、View_Type、Menu_id。然后,ODOO 系统会自动根据您所访问的 URL 进行解析,根据参数进行渲染,最后返回相应的视图。

 

 



Actions

Actions 可存在数据库中。也可以直接以字典 (dictionaries) 形式返回(比如按钮所运行的函数,利于前端 JavaScript 知道下一步要干什么)。

所有的 actions 有两个必须的属性:

type 类别,该属性决定了哪些字段会被用来解析此 action.

name 描述,可显示在客户端界面上.

 

客户端会接收到 4 种形式的 action

False

若当前 action 对话界面是打开状态,则关闭.

一条字符串

若与某客户端动作的 tag 匹配,则解析该 action,否则按数字处理.

一个数字

作为 id 从数据库中获取 action 记录,该 id 可能为数据记录 id 或外部 id.

一个字典

将其作为客户端 action 描述,解析并执行.

 

在 JavaScript 中:

var AbstractAction = require('web.AbstractAction');

var ClientAction = AbstractAction.extend({

           ...

      });

core.action_registry.add('my-custom-action', ClientAction);

在 xml 中:

<record id="my_action" model="ir.action.client">

             <field name="name"> 名称 </field>

             <field name="tag">my-custom-action</field>

</record>

<menuitem

              id="my_menu_item"

              parent="some_parent"

              action="my-custom-action"

              name="Title" />

技术
Action原理
Administrator 2025年6月9日
分析这篇文章
标签
我们的博客
存档