我正在尝试使用odoo v10中的load orm方法批量创建记录(类别,产品......)。
我遇到的问题是如何将m2o字段引用为数据库ID。
# get list of categ name from input data
parent_categ_codes = [categ['name'] for categ in categ_data]
# get product.category by name
parent_categ_objs = self.env['product.category'].search([('name','in',parent_categ_codes)])
parent_dict = {categ.name: categ for categ in parent_categ_objs}
data = []
fields_name = ['name', 'parent_id']
# populate data
for categ in categ_data:
# this works but very slow beacuse of name_search lookup
data.append([categ['name'], parent_dict[categ['parent_id']].name])
self.env['product.category'].load(fields_name,data)
如何创建parent_id
作为ID的参考?
data.append([categ['name'], parent_dict[categ['parent_id']].id])
不起作用
感谢
答案 0 :(得分:0)
最后弄明白了。就像
一样fields_name = ['name', 'parent_id/.id']
然后
cl['ClassName'], parent_dict[cl['Deps']].id
会奏效。
而fields_name = ['name', 'parent_id/id']
也将用于外部ID,即xml id