首页 > 其他分享 >odoo中对X2many的操作

odoo中对X2many的操作

时间:2023-06-03 11:32:08浏览次数:60  
标签:链接 删除 X2many 记录 ID values odoo 操作 id

many2many

(0,_ ,({'field': value}) 创建一个新的记录并将其链接到这个记录
(1,id,({'field': value}) 更新已链接的记录上的值
(2,id,_) 取消链接并删除相关记录
(3,id,_) 取消链接,但不删除相关记录
(4,id,_) 链接一个已经存在的记录
(5,_,_) 取消链接,但不会删除所有链接的记录
(6,_,[ids]) 用提供的列表替换链接记录的列表

Py中
# 设置 many2many字段为 [8, 5, 6, 4]
self.write({
    'users':[(6, 0, [8, 5, 6, 4])]
})

# 取消所有链接
self.floor_ids = [(5, 0, 0)]

XML中
# 设置用户
<field name="users" eval="[(6,0,[ref('base.user_root')])]"/>

# 代码中的定义
var x2ManyCommands = {
    // (0, virtualID, {values})
    CREATE: 0,
    create: function (virtualID, values) {
        delete values.id;
        return [x2ManyCommands.CREATE, virtualID || false, values];
    },
    // (1, id, {values})
    UPDATE: 1,
    update: function (id, values) {
        delete values.id;
        return [x2ManyCommands.UPDATE, id, values];
    },
    // (2, id[, _])
    DELETE: 2,
    delete: function (id) {
        return [x2ManyCommands.DELETE, id, false];
    },
    // (3, id[, _]) removes relation, but not linked record itself
    FORGET: 3,
    forget: function (id) {
        return [x2ManyCommands.FORGET, id, false];
    },
    // (4, id[, _])
    LINK_TO: 4,
    link_to: function (id) {
        return [x2ManyCommands.LINK_TO, id, false];
    },
    // (5[, _[, _]])
    DELETE_ALL: 5,
    delete_all: function () {
        return [5, false, false];
    },
    // (6, _, ids) replaces all linked records with provided ids
    REPLACE_WITH: 6,
    replace_with: function (ids) {
        return [6, false, ids];
    }
};

前面列表中使用的下划线符号代表无关的值,通常填充为0或False

 

 

one2many

(0, 0,{ values })根据values里面的信息新建一个记录。
(1,ID,{values}) 更新id=ID的记录(对id=ID的执行write 写入values里面的数据)
(2,ID) 删除id=ID的数据(调用unlink方法,删除数据以及整个主从数据链接关系)

在 to-many 关联字段上设置值

many2many
(0,0,{values}) 根据values里面的信息新建一个记录。
(1,ID,{values})更新id=ID的记录(写入values里面的数据)
(2,ID) 删除id=ID的数据(调用unlink方法,删除数据以及整个主从数据链接关系)
(3,ID) 切断主从数据的链接关系但是不删除这个数据
(4,ID) 为id=ID的数据添加主从链接关系。
(5) 删除所有的从数据的链接关系就是向所有的从数据调用(3,ID)
(6,0,[IDs]) 用IDs里面的记录替换原来的记录(就是先执行(5)再执行循环IDs执行(4,ID))


one2many
(0, 0,{ values })根据values里面的信息新建一个记录。
(1,ID,{values}) 更新id=ID的记录(对id=ID的执行write 写入values里面的数据)
(2,ID) 删除id=ID的数据(调用unlink方法,删除数据以及整个主从数据链接关系)

  



标签:链接,删除,X2many,记录,ID,values,odoo,操作,id
From: https://blog.51cto.com/u_5712788/6407641

相关文章

  • 操作系统笔记
    操作系统就是内核,就是kernel操作系统Frame运行机制-->两种指令、两种程序、两种状态体系结构-->宏内核、微内核两种状态的转换:用户态->核心态:中断是用户态->核心态的唯一途径;中断是让操作系统内核夺回CPU使用权的唯一途径;核心态->用户态:使用特权指令,修改PSW(程序状态寄......
  • C#操作XML文件
    C#实用教程-操作xml文件引言:什么是xml文件可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数......
  • odoo14 使用ir.actions.client 自定义弹窗内容
    ir.actions.client介绍ir.actions.client是odooactions事件的一种,触发一个在客户端实现(即js文件中定义的函数,通过core.action_registry.add(tag,函数名)注册到odoo中)动作tag--action在客户端的标识符,一般是一个专用的字符串,在js文件中注册该动作时指定。params(可......
  • 在python中对Excel进行简单的操作
    #表格的操作 #创建表格 wb=Workbook() #打开第一个工作表 wb.active #保存 wb.save("路径+文件名或文件名") #关闭 wb.close() #读取Excel中所有的工作表 wb.get_sheet_names() #访问第一个工作表 wb.worksheets[0] wb.get_sheet_names()[0] #编辑第一个工作表......
  • leetcode2352二维vector的操作
    对于二维vector有分外层和内层:当初始化指定了外层大小(行数)时,添加元素写法:错误写法:不能使用[]vector<vector<int>>v(3);//指定外层数目for(inti=0;i<3;++i){for(intj=0;j<n;++j){v[i][j]=0;}}正确写法:vector<vector<int>>v(3);//指定外层数目......
  • Spring Boot 使用 Dom4j XStream 操作 Xml
    阅读目录 0Dom4jXStream简单介绍Dom4jXStream1新建SpringBootMaven示例工程项目2引入依赖Pom3Dom4j代码实例3.1打开一个远程xml3.2创建一个xml文档3.3遍历3.4使用xpath获取节点3.5保存到文件3.6XML文件转文本3.7文本转XML文档对象3.8使用XSLT转换......
  • 如何在Spring初始化Bean或销毁Bean前执行某些操作
    阅读文本大概需要3分钟。0x01:通过在Bean中定义init-method和destory-method方法1.publicclassCar{2.3.4.publicCar(){5.System.out.println("Car'sConstructor..");6.}7.8.9.publicvoidinit(){10.System.out.println("Car'sInit...&......
  • C# Newtonsoft.Json JsonSerializerSettings配置序列化操作
    @@newtonsoft.json序列化  JsonSerializerSettings常用配置整理忽略某些属性默认值的处理空值的处理支持非公共成员日期处理(DateFormatHandling)自定义序列化的字段名称动态决定属性是否序列化枚举值的自定义格式化问题自定义类型转换全局序列化设置指定序列化时......
  • Jedis——手机验证码操作
    要求1、输入手机号,点击发送后随机生成6为数字码,2分钟有效Random、验证码存进Redis并设置过期时间120秒2、输入验证码,点击验证,返回成功或失败从Redis中获取验证码比对输入验证码3、每个手机号每天只能输入3次incr每次发送加1,大于2之后,提醒不能发送packagecom.atguigu.jedi......
  • 利用jira及confluence的API进行批量操作(查找/更新/导出/备份/删除等)
    前言:近期因为某些原因需要批量替换掉jira和confluence中的特定关键字,而且在替换前还希望进行备份(以便后续恢复)和导出(方便查看)atlassian官方的api介绍文档太简陋,很多传参都没有进一步的描述说明,过程中踩了不少的坑...故现将相关代码分享下,希望有类似需求的朋友能用得上,直接上代......