转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189319.html

actions定义了系统对于用户的操作的响应:登录、按钮、选择项目等。

一:窗口action(ir.actions.act_window )

最常用的action类型,用于将model的数据展示出来。

字段列表:
1.res_model -- 需要在view里显示数据的model
2.views -- 一个(view_id, view_type) 列表,view_type代表视图类型如:form,tree,gragh...,view_id是可选的数据库id或False,如果没有指定id,客户端会自动用fields_view_get()获取相应类型的默认视图,type参数列表的第一个会被默认用来展示
3.res_id (可选) -- 当默认的视图类型是form时,可用于指定加载的数据
4.search_view_id (可选) -- (id, name),id是储存在数据库的搜索视图,默认会读取model的默认搜索视图
5.target (可选) -- 定义视图是 在当前视图上打开(current)、使用全屏模式(fullscreen)、使用弹出框(new)、可使用main代替current来清除面包屑导航
6.context (可选) -- 额外的需要传给视图的环境数据
7.domain (可选) -- 自动添加到视图搜索中的查询
8.limit (可选) -- 在客户端显示的数据量,默认80
9.auto_search(可选) -- 搜索是否在加载默认视图后立即执行,默认True
    • view_mode -- 以逗号分隔的视图类型列表,所有类型的视图会被展示出来
    • view_ids -- 视图对象的一系列的字段,用于定义视图的默认内容
    • view_id -- 将指定的view加入到视图中,以防不被view_ids所包含
      上述参数一般在使用数据文件定义action的时候使用:

二:链接Action(ir.actions.act_url)

可以通过odoo的链接打开一个网站页面,可通过两个字段来自定义:

  • url -- 当激活action时所打开的链接
  • target -- new:在新窗口打开,self:替换当前页面内容,默认new

三:服务器Action (ir.actions.server)

可以通过action定位来触发复杂的服务端代码:

    • id -- 服务端action在数据库存储的id
    • context (可选) -- 执行服务端action的上下文环境
      储存在数据库中的action可以基于state执行一些特别的动作,部分字段在state之间是相互共享的

    • model_id -- 与action相关联的model,在 evaluation contexts中可用

    • condition (可选) -- 使用服务端的 evaluation contexts 来执行python代码,如果是False则阻止action执行,默认值是True

code -- 当调用action时执行的python代码

    • object_create -- 使用钩子创建一条新记录(通过create或copy方法)

      • use_create
        1.new - 基于指定的 model_id创建一条记录
        2.new_other - 基于指定的crud_model_id创建一条记录
        3.copy_current - 复制action所引用的记录
        4.copy_other - 复制一个通过ref_object获得的记录

      • fields_lines --当创建或复制记录时需要修改的字段,One2many 会有以下字段:
        1.col1 -- 在use_create里所包含的需要被重赋值的ir.model.fields
        2.value -- 字段对应的值,基于type进行解析
        3.type -- 取值value:就是value字段的值,取值equation:value字段会当成python来解析

      • crud_model_id -- 当use_create为new_other时,表示用于创建新记录的model id
      • ref_object -- 当use_create为copy_other时用于指定创建记录时引用的记录
      • link_new_record -- 是否用用link_field_id将新记录和当前记录进行many2one关联,默认False
      • link_field_id -- 指定当前记录与新记录进行many2one关联的字段
    • object_write -- 与object_create相似,只是只修改当前记录而不创建新记录

      • use_create
        1.current - 修改更新到当前记录
        2.other - 修改更新到通过crud_model_id 或 ref_object指定的新记录
        3.expression - 修改更新到通过crud_model_id 以及 write_expression筛选过后的记录
      • write_expression - 返回一条记录或对象id的python表达式
      • fields_lines,crud_model_id,ref_object与object_create一致
    • multi
      将通过child_ids many2many关系定义的action一个个执行,如果有action自己返回action,最后一个action被返回给客户端作为将前multi action的下一个action

    • trigger 发送一个信号给工作流

      • wkf_transition_id - 用于触发的与workflow.transition有Many2one关系的id
      • use_relational_model - 如果是base(默认),则触发当前记录的维护信号;如果是relational,则触发通过wkf_model_id 和 wkf_field_id筛选出来的当前记录的字段
    • client_action -- 返回通过action_id定义的action

四:报表Action (ir.actions.report.xml)

此action为打印报表的触发器:

  • name(必选) -- 在一个列表里进行查找时使用
  • model (必选) -- 报表所反映的数据来源model
  • report_type (必选) -- qweb-pdf | qweb-html
  • report_name -- 报表命名,用于输出的pdf文件名
  • groups_id -- 可以读取或使用当前报表的用户组,Many2many字段
  • paperformat_id -- 报表所使用的纸张格式,默认使用公司的格式,Many2one字段
  • attachment_use -- 当取值true的时候只在第一次请求时生成报表,之后直接从保存的报表打印,可用于生成后不会有改变的报表
  • attachment -- 使用python表达式来定义报表名字,该记录可用变量object访问

五:客户端Actions (ir.actions.client)

触发一个完全在客户端实现的action:

      • tag -- action在客户端的标识符,一般是一个专用的字符串
      • params (可选) -- 用来传给客户端的python数据字典格式数据
      • target (可选) -- current:当前内容区打开action,fullscreen:以全屏模式打开,new:以弹出框打开

odoo10学习笔记十:Actions的更多相关文章

  1. odoo10学习笔记十六:定时任务

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189382.html 一:定义定时器数据模型 模型中定义需要用到的字段.定时方法 from odoo im ...

  2. odoo10学习笔记十五:仪表板

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189353.html 仪表盘可以通过外部ID引用其他视图文件的内容,整合到一个界面进行显示. 一:建立仪表 ...

  3. odoo10学习笔记十二:web controller

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189332.html 一:路由 odoo.http.route(route=None, **kw) 装饰器 ...

  4. python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例

    python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...

  5. Learning ROS for Robotics Programming Second Edition学习笔记(十) indigo Gazebo rviz slam navigation

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 moveit是书的最后一章,由于对机械臂完全不知,看不懂 ...

  6. python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置

    python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置Download JetBrains Python IDE :: PyCharmhttp://www. ...

  7. python3.4学习笔记(十九) 同一台机器同时安装 python2.7 和 python3.4的解决方法

    python3.4学习笔记(十九) 同一台机器同时安装 python2.7 和 python3.4的解决方法 同一台机器同时安装 python2.7 和 python3.4不会冲突.安装在不同目录,然 ...

  8. python3.4学习笔记(十六) windows下面安装easy_install和pip教程

    python3.4学习笔记(十六) windows下面安装easy_install和pip教程 easy_install和pip都是用来下载安装Python一个公共资源库PyPI的相关资源包的 首先安 ...

  9. python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

    python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...

随机推荐

  1. 22.Java基础_StringBuilder类

    String类对象的拼接操作:执行到s+="world"语句时,常量池会先创建"world"对象,再去创建"helloworld"对象,最后 ...

  2. 【转】带栗子的GDB教程

    带栗子的GDB教程 原文链接:http://www.cprogramming.com/gdb.html作者:Manasij Mukherjee 一个好的调试软件是一个程序猿的工具箱里最重要的工具之一, ...

  3. ADB端口5037被占用 导致adb 停止工作

    解决ADB端口占用问题 方式一 5037为adb默认端口,若5037端口被占用,打开cmd,输入以下指令, 1.查看占用端口的进程PID  netstat -aon|findstr 5037 2. 通 ...

  4. ICCV

    ICCV 简介 ICCV 的全称是 IEEE International Conference on Computer Vision,即国际计算机视觉大会,由IEEE主办,与计算机视觉模式识别会议(C ...

  5. NOIP模拟赛2(two)

    题目描述 Description 很久很久很久以前,方方方造了一台计算机,计算机中开始有一个数 \(0\) .方方方想要让这个数变成 \(a\) ,他打算每次选择一个整数,把计算机中当前的数按位或上这 ...

  6. .NET使用Bogus生成大量随机数据(转载)

    原文地址:https://www.cnblogs.com/sdflysha/p/20190821-generate-lorem-data.html 在演示Demo.数据库脱敏.性能测试中,有时需要生成 ...

  7. 动手学深度学习11- 多层感知机pytorch简洁实现

    多层感知机的简洁实现 定义模型 读取数据并训练数据 损失函数 定义优化算法 小结 多层感知机的简洁实现 import torch from torch import nn from torch.nn ...

  8. nginx二级域名反向代理

    nginx二级域名反向代理 添加两个开发测试的域名 test.xxx.com :8088 testmobile.xxx.com: 8089 内网地址:127.0.0.1 外网地址:127.0.0.1 ...

  9. 十二、深入理解Java内存模型

    深入理解Java内存模型 [1]CPU和缓存的一致性 ​ 我们应该都知道,计算机在执行程序的时候,每条指令都是在CPU中执行的,而执行的时候,又免不了要和数据打交道.而计算机上面的数据,是存放在主存当 ...

  10. [转]应用工具 .NET Portability Analyzer 分析迁移 Dotnet core

    大多数开发人员更喜欢一次性编写好业务逻辑代码,以后再重用这些代码.与构建不同的应用以面向多个平台相比,这种方法更加容易.如果您创建与 .NET Core 兼容的.NET 标准库,那么现在比以往任何时候 ...