From 7297d9687dfe9866bc443c5b5d6ae5fd859e720b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 25 Feb 2009 17:35:02 +0100 Subject: [PATCH] Improve default when bad value type are stored in ir.value for issue816 --- trytond/model/model.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/trytond/model/model.py b/trytond/model/model.py index e0f13903d2..0ff1e8e437 100644 --- a/trytond/model/model.py +++ b/trytond/model/model.py @@ -451,6 +451,8 @@ class Model(object): fld_def = (field in self._columns) and self._columns[field] \ or self._inherit_fields[field][2] if fld_def._type in ('many2one',): + if not isinstance(field_value, (int, long)): + continue obj = self.pool.get(fld_def.model_name) if not hasattr(obj, 'search') \ or not obj.search(cursor, user, [ @@ -462,6 +464,8 @@ class Model(object): user, field_value, context=context).rec_name if fld_def._type in ('many2many'): + if not isinstance(field_value, list): + continue obj = self.pool.get(fld_def.model_name) field_value2 = [] for i in range(len(field_value)): @@ -473,6 +477,8 @@ class Model(object): field_value2.append(field_value[i]) field_value = field_value2 if fld_def._type in ('one2many'): + if not isinstance(field_value, list): + continue obj = self.pool.get(fld_def.model_name) field_value2 = [] for i in range(len(field_value or [])):