odoo 关于many2many 和one2many

news/2024/11/8 17:10:40/

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))

例子[(6, 0, [8, 5, 6, 4])] 设置 many2many to ids [8, 5, 6, 4]

one2many

(0, 0,{ values })根据values里面的信息新建一个记录。

(1,ID,{values}) 更新id=ID的记录(对id=ID的执行write 写入values里面的数据)

(2,ID) 删除id=ID的数据(调用unlink方法,删除数据以及整个主从数据链接关系)

转载原文链接:https://my.oschina.net/u/138005/blog/3001427

https://blog.csdn.net/weixin_34258782/article/details/91977303

One2many and Many2many use a special “commands” format to manipulate the set of records stored in/associated with the field.

One2many和Many2many使用特殊的“命令”格式来操纵存储在字段中/与字段相关联的记录集。

This format is a list of triplets executed sequentially, where each triplet is a command to execute on the set of records. Not all commands apply in all situations. Possible commands are:

此格式是按顺序执行的三元组列表,其中每个三元组是在记录集上执行的命令。 并非所有命令都适用于所有情况。 可能的命令是:

(0, _, values)

adds a new record created from the provided value dict.

添加从提供的值dict创建的新记录。

(1, id, values)

updates an existing record of id id with the values in values. Can not be used in create().

使用值中的值更新 id id的现有记录。 不能在create()中使用。

(2, id, _)

removes the record of id id from the set, then deletes it (from the database). Can not be used in create().

从集合中删除 id id的记录,然后删除它(从数据库中)。 不能在create()中使用。

(3, id, _)

removes the record of id id from the set, but does not delete it. Can not be used on One2many. Can not be used in create().

从集合中删除 id id的记录,但不删除它。 不能在One2many上使用。 不能在create()中使用。

(4, id, _)

adds an existing record of id id to the set. Can not be used on One2many.

将id id的现有记录添加到集合中。 不能在One2many上使用。

(5, _, _)

removes all records from the set, equivalent to using the command 3on every record explicitly. Can not be used on One2many. Can not be used in create().

从集合中删除所有记录,相当于在每条记录中明确使用命令3。 不能在One2many上使用。 不能在create()中使用。

(6, _, ids)

replaces all existing records in the set by the ids list, equivalent to using the command 5 followed by a command 4 for each id in ids.

替换ids列表中集合中的所有现有记录,相当于使用命令5,后跟命令4,用于id中的每个id。

 

Values marked as _ in the list above are ignored and can be anything, generally 0 or False.

上面列表中标记为_的值将被忽略,可以是任何值,通常为0或False。


http://www.ppmy.cn/news/428022.html

相关文章

VO、DTO、DO、PO的概念、区别和用处

一、概念 VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。 DTO(Data Transfer Object):数据传输对象&#xff…

PO,BO,VO,DTO,DO的区别

1、PO PO:Persistan Object(持久对象)业务:po对象的属性字段与数据库表结构字段一 一对应举例: 个⼈信息表中分别有:id,name,age,sex,birthday PO对象中的属性…

odoo 对 many2many one2many的操作

many2many (0,0,{values}) 根据values里面的信息新建一个记录。 (1,ID,{values})更新idID的记录(写入values里面的数据) (2,ID) 删除idID的数据(调用unlink方法,删除数据以及整个主从数据链接关系) (3,ID) 切断主从…

DTO-VO-DO-Query理解

POJO/PO/DO/Entity/DTO/VO/Query个人理解 POJO:Plain Ordinary Java Object,普通java对象。PO:Persistent Object,持久化对象。DO:Data Object,数据对象。Entity:实体对象。DTO:Dat…

浅析VO、DTO、DO、BO的概念、区别和用处

一、概念 VO (View Object),用于表示一个与前端进行交互的视图对象,它的作用是把某个指定页面(或组件)的所有数据封装起来。实际上,这里的 VO 只包含前端需要展示的数据,对于前端不需要的数据,比如数据创建和修改的时间…

浅析VO、DTO、DO、PO的概念、区别和用处

概念: VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。 DTO(Data Transfer Object):数据传输对象&a…

VO、DTO、BO、PO、DO区别

VO、DTO、BO、PO、DO区别 VO:(View Object)视图对象,一般位于Controller层,用于展示视图。DTO:(Data Transfer Object)数据传输对象, 即RPC 接口请求或传输出去的对象&a…

VODODTOPO

概述 经常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析。 一般而言,VO对应于页面上需要显示的数据(表单),DO对应于数…