[FIX] models: fix write() on inherited field that is not a column of parent
This commit is contained in:
parent
35233dbbe2
commit
1a47ac3921
|
@ -3924,8 +3924,8 @@ class BaseModel(object):
|
|||
# for recomputing new-style fields
|
||||
recs.modified(upd_todo)
|
||||
|
||||
unknown_fields = updend[:]
|
||||
for table in self._inherits:
|
||||
unknown_fields = set(updend)
|
||||
for table, inherit_field in self._inherits.iteritems():
|
||||
col = self._inherits[table]
|
||||
nids = []
|
||||
for sub_ids in cr.split_for_in_conditions(ids):
|
||||
|
@ -3934,10 +3934,11 @@ class BaseModel(object):
|
|||
nids.extend([x[0] for x in cr.fetchall()])
|
||||
|
||||
v = {}
|
||||
for val in updend:
|
||||
if self._inherit_fields[val][0] == table:
|
||||
v[val] = vals[val]
|
||||
unknown_fields.remove(val)
|
||||
for fname in updend:
|
||||
field = self._fields[fname]
|
||||
if field.inherited and field.related[0] == inherit_field:
|
||||
v[fname] = vals[fname]
|
||||
unknown_fields.discard(fname)
|
||||
if v:
|
||||
self.pool[table].write(cr, user, nids, v, context)
|
||||
|
||||
|
|
Loading…
Reference in New Issue