如何将所有字段的值从一条记录复制到另一条记录?
How to copy all fields's value from one record into another?
我有一个现有的记录 A,我想从记录 B 中覆盖它的值。
通常,我们使用 A.write({'filed1':RecB's_value,...}) 来更新。
但是字段数接近400,不知道有没有方便的方法。
我试过下面的代码
copy = rec_b.copy()
rec_a.write({copy})
遇到错误
AttributeError: 'yc.purchase' object has no attribute 'pop'
我希望它可以代替我的手动分配。
我找到了解决方案,
希望能帮到有同样问题的人。
a = self.browse(a)
b = self.browse(b)
# read all field_name into a list
_fields = []
for fn in self._proper_fields._map.keys():
_fields.append(fn)
# start to write
vals = {}
for _f in _fields:
# M2O must use id
if hasattr(b[_f],'id'):
# a.write({_f: b[_f].id})
vals.update({_f: b[_f].id})
else:
# a.write({_f: b[_f]})
vals.update({_f: b[_f]})
a.write(vals)
我有一个现有的记录 A,我想从记录 B 中覆盖它的值。 通常,我们使用 A.write({'filed1':RecB's_value,...}) 来更新。 但是字段数接近400,不知道有没有方便的方法。
我试过下面的代码
copy = rec_b.copy()
rec_a.write({copy})
遇到错误
AttributeError: 'yc.purchase' object has no attribute 'pop'
我希望它可以代替我的手动分配。
我找到了解决方案, 希望能帮到有同样问题的人。
a = self.browse(a)
b = self.browse(b)
# read all field_name into a list
_fields = []
for fn in self._proper_fields._map.keys():
_fields.append(fn)
# start to write
vals = {}
for _f in _fields:
# M2O must use id
if hasattr(b[_f],'id'):
# a.write({_f: b[_f].id})
vals.update({_f: b[_f].id})
else:
# a.write({_f: b[_f]})
vals.update({_f: b[_f]})
a.write(vals)