[FIX] models: fix write() on inherited field that is not a column of parent

This commit is contained in:
Raphael Collet 2015-09-11 17:03:08 +02:00
parent 35233dbbe2
commit 1a47ac3921
1 changed files with 7 additions and 6 deletions

View File

@ -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)