[FIX] models: on update, call inverse function on field even when it is stored
The inverse function of a stored computed field was not called when creating or writing on a record with such a field.
This commit is contained in:
parent
5db84cb07e
commit
41b55082ba
|
@ -3637,10 +3637,12 @@ class BaseModel(object):
|
||||||
# split up fields into old-style and pure new-style ones
|
# split up fields into old-style and pure new-style ones
|
||||||
old_vals, new_vals, unknown = {}, {}, []
|
old_vals, new_vals, unknown = {}, {}, []
|
||||||
for key, val in vals.iteritems():
|
for key, val in vals.iteritems():
|
||||||
if key in self._columns:
|
field = self._fields.get(key)
|
||||||
old_vals[key] = val
|
if field:
|
||||||
elif key in self._fields:
|
if field.store or field.inherited:
|
||||||
new_vals[key] = val
|
old_vals[key] = val
|
||||||
|
if field.inverse and not field.inherited:
|
||||||
|
new_vals[key] = val
|
||||||
else:
|
else:
|
||||||
unknown.append(key)
|
unknown.append(key)
|
||||||
|
|
||||||
|
@ -3936,10 +3938,12 @@ class BaseModel(object):
|
||||||
# split up fields into old-style and pure new-style ones
|
# split up fields into old-style and pure new-style ones
|
||||||
old_vals, new_vals, unknown = {}, {}, []
|
old_vals, new_vals, unknown = {}, {}, []
|
||||||
for key, val in vals.iteritems():
|
for key, val in vals.iteritems():
|
||||||
if key in self._all_columns:
|
field = self._fields.get(key)
|
||||||
old_vals[key] = val
|
if field:
|
||||||
elif key in self._fields:
|
if field.store or field.inherited:
|
||||||
new_vals[key] = val
|
old_vals[key] = val
|
||||||
|
if field.inverse and not field.inherited:
|
||||||
|
new_vals[key] = val
|
||||||
else:
|
else:
|
||||||
unknown.append(key)
|
unknown.append(key)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue