From 8bd679aa7d0270573b7322af5a4daf331b66d44c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 16 Mar 2014 15:48:28 +0100 Subject: [PATCH] Returns only read values for on_change issue3749 review4251002 --- proteus/__init__.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/proteus/__init__.py b/proteus/__init__.py index b0c8f32f76..5ff62c1a35 100644 --- a/proteus/__init__.py +++ b/proteus/__init__.py @@ -770,11 +770,14 @@ class Model(object): return values def _get_on_change_value(self): - values = self._get_eval() + values = {'id': self.id} for field, definition in self._fields.iteritems(): - if definition['type'] == 'one2many': - values[field] = [x._get_on_change_value() - for x in getattr(self, field)] + if field in self._values and field != 'id': + if definition['type'] == 'one2many': + values[field] = [x._get_on_change_value() + for x in getattr(self, field)] + else: + values[field] = getattr(self, '__%s_eval' % field) return values def _on_change_args(self, args):