From 6e0c73d2adb7c4d6c3cb5da71a184640cffd0f98 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Wed, 17 Sep 2014 14:16:25 +0200 Subject: [PATCH] [FIX] fields: make convert_to_cache() more robust with inverse one2many When a one2many field uses an integer field as inverse, the onchange method on the second model may receive a dictionary for the value of the integer field. This is because the client expects that field to be a many2one. --- openerp/fields.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openerp/fields.py b/openerp/fields.py index 01043021dfd..e103ee14515 100644 --- a/openerp/fields.py +++ b/openerp/fields.py @@ -903,6 +903,9 @@ class Integer(Field): type = 'integer' def convert_to_cache(self, value, record, validate=True): + if isinstance(value, dict): + # special case, when an integer field is used as inverse for a one2many + return value.get('id', False) return int(value or 0) def convert_to_read(self, value, use_name_get=True):