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

odoo中对X2many的操作

时间:2023-06-02 15:35:30浏览次数:28  
标签:链接 删除 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://www.cnblogs.com/lhm166/p/17451904.html

相关文章

  • minio挂载操作
    挂载端安装s3fs-fuseaptinstalls3fs-fusehttps://github.com/s3fs-fuse/s3fs-fuse 挂载miniohttps://github.com/lukewaite/cookbook/blob/master/docs/zh_CN/s3fs-fuse-with-minio.md存放minio的access_key和secret_keyecho"access_key:secret_key">/etc/s3cre......
  • Nginx的动静分离和平滑升级的操作步骤
    Nginx动静分离和平滑升级拓扑图:推荐步骤:在Centos01上安装Nginx服务,使用www.bdqn.com访问Nginx在Centos02配置DNS服务器使用,创建bdqn.com域和benet.com域分别添加主机指向Nginx主机IP地址和LAMP主机IP地址在Nginx服务器配置动静分离,静态数据图片访问Nginx动态php访问跳转到LAMP在Cen......
  • 操作MS Execl电子表格的常用JAR包
    在做报表开发时,免不了要导出数据。除了简单的循环列表数据导出外,还有基于模板的数据导出。比如生成运营周报或者月报之类的,甚是符合使用模板导出方式。今天总结一些常用的Execl导出JAR包。0x01:jxl支持Excel95-2000的所有版本;生成Excel2000标准格式;支持字体、数字、日期操作;能够修......
  • Linux 操作系统上部署 ClamAV病毒查杀软件
    0.序言因为公司业务合作,对方需要我方提交审查资料,其中需要包含Linux主机的病毒扫描情况,特记录一次ClamAV的部署与使用1.clamav介绍ClamAV是一个开源的引擎,用于检测病毒、木马、恶意软件和其他威胁。ClamAV支持Windows、Linux和MacOS等系统,ClamAV社区提供了免费的持续的病毒......
  • python 使用 openpyxl 操作 excel
    python使用openpyxl操作excel文章目录python使用openpyxl操作excel前言1.环境2.读取数据3.openpyxl前言二、使用zipfile、openpyxl、flask批量导出excelzip1.环境openyxl:3.0.6python:3.7.6pandas:1.3.52.读取数据#使用pandas读取数据#https://pandas.pydata.org/docs......
  • Mysql / MariaDB 操作 《 json 》 字段
    Mysql/MariaDB操作《json》字段Mysql/MariaDB操作《json》字段提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录Mysql/MariaDB操作《json》字段前言环境一、数据库结构二、使用方法1.查找json_value字段中a字段等于1三、常用方法总......
  • Move Zeroes 移动零、Expression Add Operators 表达式增加操作符
    1.MoveZeroes移动零 Givenanarray nums,writeafunctiontomoveall 0'stotheendofitwhilemaintainingtherelativeorderofthenon-zeroelements.Forexample,given nums=[0,1,0,3,12],aftercallingyourfunction, nums shouldbe [1,3,12,......
  • Git—远程仓库操作
    一、代码托管平台1.1Github......
  • python操作InfluxDB
    InfluxDB版本:1.8.0以下针对1.x版本influxdb操作语法python针对influxdb的操作安装模块pipinstallinfluxdbfrominfluxdbimportinfluxDBClientconn_db=InfluxDBClient('localhost','8086','username','password','db_name')#1、显示已存在的......
  • AI智能安监平台EasyCVR多级分组展开按钮无法操作的问题优化
    EasyCVR基于云边端协同,可支持海量视频的轻量化接入与汇聚管理。平台既具备传统安防视频监控的能力,比如:视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲等,也能接入AI智能分析的能力,包括人脸检测、车辆检测、烟火检测、安全帽检测、区域入......