m3a*_*smi 23 many-to-many insert odoo
我试图在odoo(以前的OpenERP)中将值插入到many2many或one2manhy关系表中.你知道怎么做吗?
谢谢
Don*_*kby 45
这是stock模块的一个例子:
invoice_line_id = invoice_line_obj.create(cursor, user, {
'name': name,
'origin': origin,
'invoice_id': invoice_id,
'uos_id': uos_id,
'product_id': move_line.product_id.id,
'account_id': account_id,
'price_unit': price_unit,
'discount': discount,
'quantity': move_line.product_uos_qty or move_line.product_qty,
'invoice_line_tax_id': [(6, 0, tax_ids)],
'account_analytic_id': account_analytic_id,
}, context=context)
self._invoice_line_hook(cursor, user, move_line, invoice_line_id)
Run Code Online (Sandbox Code Playgroud)
该invoice_line_tax_id字段是多对多关系,以及(6, 0, tax_ids)用于替换任何现有记录的方法tax_ids.因为你正在打电话create(),没有什么可以替代的.
对于many2many字段,预计会有一个元组列表.这是接受的元组列表,以及相应的语义
(0, 0, { values })链接到需要使用给定值字典创建的新记录
(1, ID, { values })使用id = ID更新链接记录(在其上写入值)
(2, ID)删除并删除id = ID的链接记录(在ID上调用unlink,将完全删除对象,以及指向它的链接)
(3, ID)使用id = ID剪切链接到记录的链接(删除两个对象之间的关系,但不删除目标对象本身)
(4, ID)链接到id = ID的现有记录(添加关系)
(5)取消全部链接(例如对所有链接记录使用(3,ID))
(6, 0, [IDs])替换链接ID列表(如使用(5)然后(4,ID)ID列表中的每个ID)
小智 7
def list_customers(self, cr, uid, ids, context):
sale_obj = self.pool.get('sale.order')
for sale in self.browse(cr, uid, ids, context):
sale_ids = sale_obj.search(cr, uid, [('div_code_id','=',sale.div_code_id.id),('project_user','=',sale.project_id.id),('tower_id','=',sale.tower_id.id)])
ids_cus = []
for cus in sale_obj.browse(cr, uid, sale_ids, context):
if cus.partner_id.id not in ids_cus:
ids_cus.append(cus.partner_id.id)
self.write(cr, uid, ids, {'state_readonly':'listed','customer_ids': [(6, 0, ids_cus)]})
return True
Run Code Online (Sandbox Code Playgroud)
您可以在OpenERP中的多对多关系表中插入值,请看上面的示例