odoo one2many many2many 字段设置默认值

我们经常会遇到这样的需求,在创建的时候 给 明细行(one2many)设置默认值。

我们先来看看操作这两个字段的方法

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方法,删除数据以及整个主从数据链接关系)

从上面得知

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

这种写法可以新建一条记录

那么我们在定义字段的时候就可以设置默认值了
写法如下

	#单个赋值
	_default_line_ids=[ (0, 0,{ values })]
	
	#多个赋值
	_default_line_ids=[ 
		(0, 0,{ values }),
		 (0, 0,{ values }),
		  (0, 0,{ values })
	]
	
   line_ids = fields.One2many('XXX', 'XX_id', default=_default_line_ids)

这样我们在创建的时候 明明就会有默认值了

照着上面的方法 完全就可以写出怎么给Many2many赋默认值了。这里就不再介绍。

你可能感兴趣的:(odoo)